Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void Save([ARDataBind("Business", AutoLoad = AutoLoadBehavior.NewRootInstanceIfInvalidKey)] UCampus.Core.Models.Business business,
- [ARDataBind("Business.HoursOfOperation", AutoLoad = AutoLoadBehavior.NewInstanceIfInvalidKey)] Hours hoursOfOperation,
- [ARDataBind("Business.DeliveryHours", AutoLoad = AutoLoadBehavior.NewInstanceIfInvalidKey)] Hours deliveryHours,
- [ARDataBind("Business.AdditionalHours", AutoLoad = AutoLoadBehavior.NewInstanceIfInvalidKey)] Hours additionalHours)
- {
- if (business == null)
- {
- PropertyBag["Business"] = null;
- RenderView("InvalidSave.vm");
- return;
- }
- if (!business.UserIsManager(User))
- {
- RenderView("InvalidSave.vm");
- return;
- }
- try
- {
- //save hours if add.
- bool isEditing = business.Id > 0;
- if (!isEditing)
- {
- HoursRepository.SaveAndFlush(hoursOfOperation);
- HoursRepository.SaveAndFlush(deliveryHours);
- HoursRepository.SaveAndFlush(additionalHours);
- }
- //fill fields.
- business.HoursOfOperation = hoursOfOperation;
- business.DeliveryHours = deliveryHours;
- business.AdditionalHours = additionalHours;
- if (!isEditing)
- {
- business.VerificationCode = new Random().Next(1000, 9999).ToString();
- }
- FillLatitudeLongitude(business);
- FillAmenities(business);
- //save business.
- Core.Repositories.BusinessRepository.Save(business);
- //show success message.
- Flash["Success"] = isEditing ? "Business Updated" : "Business Created";
- //redirect to business profile.
- RedirectTo("Business", "Home", "Index",
- new System.Collections.Specialized.NameValueCollection() { { "id", business.Id.ToString() } });
- }
- catch (Castle.Components.Validator.ValidationException validationException)
- {
- LogWriter.Write("Error in save business - " + validationException.ToString() + " - " + DateTime.Now.ToString());
- //show error message.
- Flash["ValidationException"] = validationException;
- //add view data.
- AddDataToModels(business);
- RenderView("Form.vm");
- }
- }
- private void FillAmenities(UCampus.Core.Models.Business business)
- {
- //save business amenities.
- var amenities = AmenityRepository.GetByBusinessType(business.BusinessType.Parent.Id);
- foreach (var amenity in amenities)
- {
- //get business amenity value.
- string value = Request.Form["amenity_" + amenity.Id.ToString()];
- if (value == "on") { value = "true"; }
- else if (value == null) { value = "false"; }
- //check if business amenity exists.
- var existingBusinessAmenity = business.BusinessAmenities.Where(ba => ba.Amenity.Id == amenity.Id
- && ba.Business.Id == business.Id).FirstOrDefault();
- if (existingBusinessAmenity != null)
- {
- if (value.Length > 0 && value != "false")
- {//update existing business amenity.
- existingBusinessAmenity.Value = value;
- }
- else
- {//delete existing business amenity.
- business.BusinessAmenities.Remove(existingBusinessAmenity);
- }
- }
- else if (value.Length > 0 && value != "false")
- {//create new business amenity.
- var businessAmenity = new BusinessAmenity();
- businessAmenity.Amenity = amenity;
- businessAmenity.Business = business;
- businessAmenity.Value = value;
- business.BusinessAmenities.Add(businessAmenity);
- }
- }
- }
- private void FillLatitudeLongitude(UCampus.Core.Models.Business business)
- {
- //save lat & long.
- string address = business.Address1 + (String.IsNullOrEmpty(business.Address2) ? String.Empty : (" " + business.Address2))
- + ", " + business.City + ", " + business.State + " " + business.Zip;
- var coordinates = GeoHelper.GetCoordinates(address);
- business.Latitude = coordinates.Latitude;
- business.Longitude = coordinates.Longitude;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement