Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
        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"));
        }