Advertisement
Guest User

Untitled

a guest
Jan 18th, 2011
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.85 KB | None | 0 0
  1. public void Save([ARDataBind("Business", AutoLoad = AutoLoadBehavior.NewRootInstanceIfInvalidKey)] UCampus.Core.Models.Business business,
  2.             [ARDataBind("Business.HoursOfOperation", AutoLoad = AutoLoadBehavior.NewInstanceIfInvalidKey)] Hours hoursOfOperation,
  3.             [ARDataBind("Business.DeliveryHours", AutoLoad = AutoLoadBehavior.NewInstanceIfInvalidKey)] Hours deliveryHours,
  4.             [ARDataBind("Business.AdditionalHours", AutoLoad = AutoLoadBehavior.NewInstanceIfInvalidKey)] Hours additionalHours)
  5.         {
  6.             if (business == null)
  7.             {
  8.                 PropertyBag["Business"] = null;
  9.                 RenderView("InvalidSave.vm");
  10.                 return;
  11.             }
  12.             if (!business.UserIsManager(User))
  13.             {
  14.                 RenderView("InvalidSave.vm");
  15.                 return;
  16.             }
  17.             try
  18.             {
  19.                 //save hours if add.
  20.                 bool isEditing = business.Id > 0;
  21.                 if (!isEditing)
  22.                 {
  23.                     HoursRepository.SaveAndFlush(hoursOfOperation);
  24.                     HoursRepository.SaveAndFlush(deliveryHours);
  25.                     HoursRepository.SaveAndFlush(additionalHours);
  26.                 }
  27.                 //fill fields.
  28.                 business.HoursOfOperation = hoursOfOperation;
  29.                 business.DeliveryHours = deliveryHours;
  30.                 business.AdditionalHours = additionalHours;
  31.                 if (!isEditing)
  32.                 {
  33.                     business.VerificationCode = new Random().Next(1000, 9999).ToString();
  34.                 }
  35.                 FillLatitudeLongitude(business);
  36.                 FillAmenities(business);
  37.                 //save business.
  38.                 Core.Repositories.BusinessRepository.Save(business);
  39.                 //show success message.
  40.                 Flash["Success"] = isEditing ? "Business Updated" : "Business Created";
  41.                 //redirect to business profile.
  42.                 RedirectTo("Business", "Home", "Index",
  43.                            new System.Collections.Specialized.NameValueCollection() { { "id", business.Id.ToString() } });
  44.             }
  45.             catch (Castle.Components.Validator.ValidationException validationException)
  46.             {
  47.                 LogWriter.Write("Error in save business - " + validationException.ToString() + " - " + DateTime.Now.ToString());
  48.                 //show error message.
  49.                 Flash["ValidationException"] = validationException;
  50.                 //add view data.
  51.                 AddDataToModels(business);
  52.                 RenderView("Form.vm");
  53.             }
  54.         }
  55.  
  56.         private void FillAmenities(UCampus.Core.Models.Business business)
  57.         {
  58.             //save business amenities.
  59.             var amenities = AmenityRepository.GetByBusinessType(business.BusinessType.Parent.Id);
  60.             foreach (var amenity in amenities)
  61.             {
  62.                 //get business amenity value.
  63.                 string value = Request.Form["amenity_" + amenity.Id.ToString()];
  64.                 if (value == "on") { value = "true"; }
  65.                 else if (value == null) { value = "false"; }
  66.                 //check if business amenity exists.
  67.                 var existingBusinessAmenity = business.BusinessAmenities.Where(ba => ba.Amenity.Id == amenity.Id
  68.                     && ba.Business.Id == business.Id).FirstOrDefault();
  69.                 if (existingBusinessAmenity != null)
  70.                 {
  71.                     if (value.Length > 0 && value != "false")
  72.                     {//update existing business amenity.
  73.                         existingBusinessAmenity.Value = value;
  74.                     }
  75.                     else
  76.                     {//delete existing business amenity.
  77.                         business.BusinessAmenities.Remove(existingBusinessAmenity);
  78.                     }
  79.                 }
  80.                 else if (value.Length > 0 && value != "false")
  81.                 {//create new business amenity.
  82.                     var businessAmenity = new BusinessAmenity();
  83.                     businessAmenity.Amenity = amenity;
  84.                     businessAmenity.Business = business;
  85.                     businessAmenity.Value = value;
  86.                     business.BusinessAmenities.Add(businessAmenity);
  87.                 }
  88.             }
  89.         }
  90.  
  91.         private void FillLatitudeLongitude(UCampus.Core.Models.Business business)
  92.         {
  93.             //save lat & long.
  94.             string address = business.Address1 + (String.IsNullOrEmpty(business.Address2) ? String.Empty : (" " + business.Address2))
  95.                 + ", " + business.City + ", " + business.State + " " + business.Zip;
  96.             var coordinates = GeoHelper.GetCoordinates(address);
  97.             business.Latitude = coordinates.Latitude;
  98.             business.Longitude = coordinates.Longitude;
  99.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement