public ActionResult Create() { // Copy over the possibly applicable data to the listing so the user doesn't have to type it twice if it's the same as the account info. ListingViewModelEdit listing = new ListingViewModelEdit(); //plamen: instead of copy get available account data and use AccountLogic accountLogic = new AccountLogic(); var accountVM = accountLogic.GetByEmail(User.Identity.Name); ClientCardInfoLogic ClientCardInfoLogic = new ClientCardInfoLogic(); if (accountVM != null) { var clientCardInfo = ClientCardInfoLogic.GetByClientGuid(accountVM.ClientGuid); if (null == clientCardInfo) return RedirectToAction("ClientCardInfo","Account"); listing = accountVM.FeedListing(); this.AddListingTypesToListing(listing); this.AddTypesOfCareToListing(listing); this.AddFacilityPhotoToListing(listing, true); } listing.SaveButtonText = listing.ActionName = "Create"; // If logged in, show the form. return View(listing); }
public ActionResult Create(ListingViewModelEdit listing) { if (ModelState.IsValid) { var savedlisting = this.SaveListing(listing, true); //return RedirectToAction("See", "Listings", new { facilityGuid = savedlisting.FacilityGuid }); return SeeResult(savedlisting.FacilityGuid); } else { ModelState.AddModelError("FormSubmit", "Create listing - errors detected"); this.AddListingTypesToListing(listing); this.AddTypesOfCareToListing(listing); this.AddFacilityPhotoToListing(listing, true); return View(listing); } }
private void SaveTypesOfCare(ListingViewModelEdit listing) { FacilityOfferingLogic fologic = new FacilityOfferingLogic(); // offerings (types of care) processing listing.TypeOfCareList.ToList().ForEach(tc => { var exists = fologic.GetFacilityOfferingByFacilityGuidOfferingGuid(listing.FacilityGuid, tc.TypeOfCareGuid); // checked but not present in database if (tc.Checked && exists == null) { fologic.InsertFacilityOffering(tc.ToFacilityOffering(listing.FacilityGuid)); } // not checked but present in database if (!tc.Checked && exists != null) { fologic.DeleteFacilityOffering(tc.ToFacilityOffering(listing.FacilityGuid)); } }); }
private ListingViewModelEdit SaveListing(ListingViewModelEdit listing, bool insert) { // try to find first city record and if not found insert new CityStateZipLogic cszLogic = new CityStateZipLogic(); CityStateZip csz = cszLogic.GetCityStateZipByCityStateZipGuid(listing.CityStateZipGuid); csz = new CityStateZip(listing.CityStateZipGuid, listing.City, listing.State, listing.ZipCode); csz = cszLogic.InsertCityStateZip(csz); listing.CityStateZipGuid = csz.CityStateZipGuid; //price ListingTypeLogic listingTypeLogic = new ListingTypeLogic(); ListingType listingType = listingTypeLogic.GetListingTypeByListingTypeGuid(listing.ListingTypeGuid); Facility facility = listing.ToFacility(); FacilityLogic facilityLogic = new FacilityLogic(); if (insert) { //Add Facility Price from listing list facility.Price = listingType.ListingTypePrice; facility = facilityLogic.InsertFacility(facility); listing.FacilityGuid = facility.FacilityGuid; listing.FacilityID = facility.FacilityID; //// add facilityguid to photos listing.FacilityPhotos.ToList().ForEach(ff => ff.FacilityGuid = listing.FacilityGuid); } else { facility.FacilityGuid = listing.FacilityGuid; // if listing type change then price from listing list Facility oldfacility = facilityLogic.GetFacilityByFacilityGuid(listing.FacilityGuid); if (oldfacility.ListingTypeGuid != facility.ListingTypeGuid) facility.Price = listingType.ListingTypePrice; else facility.Price = oldfacility.Price; facilityLogic.UpdateFacility(facility); } this.SaveTypesOfCare(listing); this.SaveListingPhotos(listing.FacilityPhotos.ToList()); return listing; }
public ActionResult Edit(ListingViewModelEdit listing) { this.AddListingTypesToListing(listing); if (ModelState.IsValid) { var savedlisting = this.SaveListing(listing, false); return SeeResult(savedlisting.FacilityGuid); } else { ModelState.AddModelError("FormSubmit", "Save listing - errors detected"); this.AddListingTypesToListing(listing); this.AddTypesOfCareToListing(listing); this.AddFacilityPhotoToListing(listing, true); return View(listing); } }
protected void AddTypesOfCareToListing(ListingViewModelEdit listing) { var ologic = new OfferingLogic(); var offerings = this.OfferingsAll; var offeringsForThisFacility = ologic.GetOfferingsForFacility(listing.FacilityGuid); var typesofcare = new List<TypeOfCareViewModel>(); offerings.ToList().ForEach(o => { var checkd = offeringsForThisFacility.FirstOrDefault(otf => otf.OfferingGuid == o.OfferingGuid) != null; typesofcare.Add(o.ToTypeOfCare(checkd)); }); listing.TypeOfCareList = typesofcare; }
protected void AddListingTypesToListing(ListingViewModelEdit listingModel) { var list = this.ListingTypes; SelectList sl = new SelectList(list, "ListingTypeGuid", "ListingTypeName"); listingModel.ListingTypeSelectList = sl; if (listingModel.ListingTypeGuid == Guid.Empty) { listingModel.ListingTypeGuid = list.First().ListingTypeGuid; } }
// contains styling protected void AddFacilityPhotoToListing(ListingViewModelEdit listing, bool generateEmpty) { FacilityPhotoLogic photologic = new FacilityPhotoLogic(); var photos = photologic.GetFacilityPhotosForFacilityByFacilityGuid(listing.FacilityGuid).ToViewModelList(); photos.ToList().ForEach(f => { f.Uid = string.Format("{0}", f.FacilityPhotoGuid); f.CssStyle = "fieldRow"; }); if (generateEmpty) { //// add additional text boxes int limit = 20 - photos.Count; for (int i = 0; i < limit; i++) { photos.Add(new FacilityPhotoViewModel { FacilityGuid = listing.FacilityGuid, Uid = string.Format("{0:00}", i), CssStyle = "hidden" }); } } listing.FacilityPhotos = photos; }