public async Task<ActionResult> CakeDetails(Models.CakeViewModel model) { IcedMemories.Domain.Models.Cake _cake = await WorkManager.CakeManager.LoadAsync(model.Id); String _imagePath = ""; String _imageExtension = ""; if(_cake == null) { _cake = new Domain.Models.Cake(); } if (_cake.Id == Guid.Empty) { _cake.DateAdded = System.DateTime.Now; } _cake.Title = model.Title; _cake.Description = model.Description; if (model.ImageUpload != null) { if (model.ImageUpload.FileName.LastIndexOf(".") > -1) { try { _imageExtension = model.ImageUpload.FileName.Substring(model.ImageUpload.FileName.LastIndexOf(".")); if ((_cake.ImageLink == null) || (_cake.ImageLink.Trim() == "") || (_cake.ImageLink.LastIndexOf(".")==-1)) { _imagePath = "/Images/Cakes/" + _cake.DateAdded.Year.ToString("0000") + "/" + _cake.DateAdded.Month.ToString("00") + "/" + Guid.NewGuid().ToString() + _imageExtension; } else { _imagePath = _cake.ImageLink.Substring(0, _cake.ImageLink.LastIndexOf(".")) + _imageExtension; } if (System.IO.Directory.Exists(Server.MapPath("/Images/Cakes/" + _cake.DateAdded.Year.ToString("0000"))) == false) { System.IO.Directory.CreateDirectory(Server.MapPath("/Images/Cakes/" + _cake.DateAdded.Year.ToString("0000"))); } if (System.IO.Directory.Exists(Server.MapPath("/Images/Cakes/" + _cake.DateAdded.Year.ToString("0000") + "/" + _cake.DateAdded.Month.ToString("00"))) == false) { System.IO.Directory.CreateDirectory(Server.MapPath("/Images/Cakes/" + _cake.DateAdded.Year.ToString("0000") + "/" + _cake.DateAdded.Month.ToString("00"))); } try { if(System.IO.File.Exists(Server.MapPath(_imagePath))) { System.IO.File.Delete(Server.MapPath(_imagePath)); } model.ImageUpload.SaveAs(Server.MapPath(_imagePath)); _cake.ImageLink = _imagePath; } catch(Exception ex) { } } catch(Exception exUpload) { } } } else { } await WorkManager.CakeManager.SaveAsync(_cake); foreach(Models.SearchCategorySelection _sCat in model.Categories) { foreach(Models.SearchCategoryOptionSelection _sOption in _sCat.Options) { if(_sOption.Selected==true) { if(_sOption.SelectionId==Guid.Empty) { IcedMemories.Domain.Models.SearchCategorySelection _newSelection = new Domain.Models.SearchCategorySelection(); _newSelection.CakeId = _cake.Id; _newSelection.CategoryOptionId = _sOption.Id; await WorkManager.SearchCategorySelectionManager.SaveAsync(_newSelection); } } else { if(_sOption.SelectionId!=Guid.Empty) { await WorkManager.SearchCategorySelectionManager.DeleteAsync(_sOption.SelectionId); } } } } Models.CakeViewModel _returnCake = Mapper.Map<IcedMemories.Domain.Models.Cake, Models.CakeViewModel>(_cake); try { _returnCake.Categories = Mapper.Map<IList<IcedMemories.Domain.Models.SearchCategory>, IList<Models.SearchCategorySelection>>(await WorkManager.SearchCategoryManager.GetCategoriesAsync()); IList<IcedMemories.Domain.Models.SearchCategoryOption> _selectedOptions = await WorkManager.SearchCategoryOptionManager.GetCategoryOptionsForCakeAsync(_cake.Id); IList<IcedMemories.Domain.Models.SearchCategorySelection> _selections = await WorkManager.SearchCategorySelectionManager.GetCategorySelectionsForCakeAsync(_cake.Id); foreach (Models.SearchCategorySelection _category in _returnCake.Categories) { _category.Options = Mapper.Map<IList<IcedMemories.Domain.Models.SearchCategoryOption>, IList<Models.SearchCategoryOptionSelection>>(await WorkManager.SearchCategoryOptionManager.GetCategoryOptionsAsync(_category.Id)); foreach (IcedMemories.Domain.Models.SearchCategorySelection _selection in _selections) { foreach (Models.SearchCategoryOptionSelection _option in _category.Options) { if (_option.Id == _selection.CategoryOptionId) { _option.SelectionId = _selection.Id; _option.Selected = true; break; } } } } } catch (Exception ex) { } //return PartialView("CakeDetailsPartial", _returnCake); return RedirectToAction("Cakes"); }
public async Task <ActionResult> CakeDetails(Models.CakeViewModel model) { IcedMemories.Domain.Models.Cake _cake = await WorkManager.CakeManager.LoadAsync(model.Id); String _imagePath = ""; String _imageExtension = ""; if (_cake == null) { _cake = new Domain.Models.Cake(); } if (_cake.Id == Guid.Empty) { _cake.DateAdded = System.DateTime.Now; } _cake.Title = model.Title; _cake.Description = model.Description; if (model.ImageUpload != null) { if (model.ImageUpload.FileName.LastIndexOf(".") > -1) { try { _imageExtension = model.ImageUpload.FileName.Substring(model.ImageUpload.FileName.LastIndexOf(".")); if ((_cake.ImageLink == null) || (_cake.ImageLink.Trim() == "") || (_cake.ImageLink.LastIndexOf(".") == -1)) { _imagePath = "/Images/Cakes/" + _cake.DateAdded.Year.ToString("0000") + "/" + _cake.DateAdded.Month.ToString("00") + "/" + Guid.NewGuid().ToString() + _imageExtension; } else { _imagePath = _cake.ImageLink.Substring(0, _cake.ImageLink.LastIndexOf(".")) + _imageExtension; } if (System.IO.Directory.Exists(Server.MapPath("/Images/Cakes/" + _cake.DateAdded.Year.ToString("0000"))) == false) { System.IO.Directory.CreateDirectory(Server.MapPath("/Images/Cakes/" + _cake.DateAdded.Year.ToString("0000"))); } if (System.IO.Directory.Exists(Server.MapPath("/Images/Cakes/" + _cake.DateAdded.Year.ToString("0000") + "/" + _cake.DateAdded.Month.ToString("00"))) == false) { System.IO.Directory.CreateDirectory(Server.MapPath("/Images/Cakes/" + _cake.DateAdded.Year.ToString("0000") + "/" + _cake.DateAdded.Month.ToString("00"))); } try { if (System.IO.File.Exists(Server.MapPath(_imagePath))) { System.IO.File.Delete(Server.MapPath(_imagePath)); } model.ImageUpload.SaveAs(Server.MapPath(_imagePath)); _cake.ImageLink = _imagePath; } catch (Exception ex) { } } catch (Exception exUpload) { } } } else { } await WorkManager.CakeManager.SaveAsync(_cake); foreach (Models.SearchCategorySelection _sCat in model.Categories) { foreach (Models.SearchCategoryOptionSelection _sOption in _sCat.Options) { if (_sOption.Selected == true) { if (_sOption.SelectionId == Guid.Empty) { IcedMemories.Domain.Models.SearchCategorySelection _newSelection = new Domain.Models.SearchCategorySelection(); _newSelection.CakeId = _cake.Id; _newSelection.CategoryOptionId = _sOption.Id; await WorkManager.SearchCategorySelectionManager.SaveAsync(_newSelection); } } else { if (_sOption.SelectionId != Guid.Empty) { await WorkManager.SearchCategorySelectionManager.DeleteAsync(_sOption.SelectionId); } } } } Models.CakeViewModel _returnCake = Mapper.Map <IcedMemories.Domain.Models.Cake, Models.CakeViewModel>(_cake); try { _returnCake.Categories = Mapper.Map <IList <IcedMemories.Domain.Models.SearchCategory>, IList <Models.SearchCategorySelection> >(await WorkManager.SearchCategoryManager.GetCategoriesAsync()); IList <IcedMemories.Domain.Models.SearchCategoryOption> _selectedOptions = await WorkManager.SearchCategoryOptionManager.GetCategoryOptionsForCakeAsync(_cake.Id); IList <IcedMemories.Domain.Models.SearchCategorySelection> _selections = await WorkManager.SearchCategorySelectionManager.GetCategorySelectionsForCakeAsync(_cake.Id); foreach (Models.SearchCategorySelection _category in _returnCake.Categories) { _category.Options = Mapper.Map <IList <IcedMemories.Domain.Models.SearchCategoryOption>, IList <Models.SearchCategoryOptionSelection> >(await WorkManager.SearchCategoryOptionManager.GetCategoryOptionsAsync(_category.Id)); foreach (IcedMemories.Domain.Models.SearchCategorySelection _selection in _selections) { foreach (Models.SearchCategoryOptionSelection _option in _category.Options) { if (_option.Id == _selection.CategoryOptionId) { _option.SelectionId = _selection.Id; _option.Selected = true; break; } } } } } catch (Exception ex) { } //return PartialView("CakeDetailsPartial", _returnCake); return(RedirectToAction("Cakes")); }