public ActionResult CreateUpdateFertilizer(Int32 id)
        {
            var fertilizerModel = new FertilizerModel();

            fertilizerModel.FertilizerGuid = Guid.NewGuid().ToString();
            fertilizerModel.DatePurchase   = DateTime.Now;

            if (id > 0)
            {
                var fertilize = FarmManagementEntities.Fertilizers.Single(x => x.Id == id);
                fertilizerModel = fertilize.ToType <Fertilizer, FertilizerModel>();

                fertilizerModel.FertilizerQuality  = Convert.ToInt32(fertilize.Quality.ParseEnum <Quality>());
                fertilizerModel.FertilizerQuantity = Convert.ToInt32(fertilize.Quantity.ParseEnum <FertilizerQuantity>());
                fertilizerModel.FertilizerType     = Convert.ToInt32(fertilize.Type.ParseEnum <FertilizerType>());

                GetUploadFile(FileUploadPath.Fertilizer, fertilize.Id, fertilize.PaymentBill);
                fertilizerModel.FertilizerGuid = fertilize.Id.ToString();
            }

            return(PartialView("FertilizerPartial", fertilizerModel));
        }
        public ActionResult CreateUpdateFertilizer(FertilizerModel fertilizerModel)
        {
            if (!ModelState.IsValid)
            {
                return(ShowErrorMessage(GetModelErrors(ModelState)));
            }

            if (!CheckEmployeeHasBalance(fertilizerModel.Price))
            {
                return(ShowErrorMessage(Constant.InsufficientBalance));
            }

            var fertilizer = new Fertilizer();

            if (fertilizerModel.Id > 0)
            {
                fertilizer = FarmManagementEntities.Fertilizers.Single(x => x.Id == fertilizerModel.Id);
            }

            fertilizer.FarmId    = fertilizerModel.FarmId;
            fertilizer.VendorId  = fertilizerModel.VendorId;
            fertilizer.AccountId = fertilizerModel.AccountId;

            fertilizer.FertilizerName   = fertilizerModel.FertilizerName;
            fertilizer.DatePurchase     = fertilizerModel.DatePurchase;
            fertilizer.PaymentBill      = fertilizerModel.PaymentBill;
            fertilizer.OtherDescription = fertilizerModel.OtherDescription;
            fertilizer.Brand            = fertilizerModel.Brand;

            fertilizer.Quality  = fertilizerModel.FertilizerQuality.ToNullIfEmptyEnum <Quality>();
            fertilizer.Quantity = fertilizerModel.FertilizerQuantity.ToNullIfEmptyEnum <FertilizerQuantity>();
            fertilizer.Type     = fertilizerModel.FertilizerType.ToNullIfEmptyEnum <FertilizerType>();

            var fileUpload = ClientSession.FileUploads.Single(x => x.FileUploadGuid == fertilizerModel.FertilizerGuid && x.FileUploadName == FileUploadPath.Fertilizer &&
                                                              !x.HasRemoved);

            fertilizer.PaymentBill = System.IO.Path.GetFileName(fileUpload.FilePath);

            if (fertilizerModel.Id == 0)
            {
                fertilizer.Price            = fertilizerModel.Price;
                fertilizer.PricePerItem     = fertilizerModel.PricePerItem;
                fertilizer.QuantityInNumber = fertilizerModel.QuantityInNumber;

                fertilizer.InsertDate = DateTime.Now;
                fertilizer.UserId     = fertilizerModel.UserId;
                FarmManagementEntities.Fertilizers.Add(fertilizer);

                ManageEmployeeBalance(fertilizerModel.Price);
            }
            else
            {
                fertilizer.UpdateDate = DateTime.Now;
            }

            FarmManagementEntities.SaveChanges();

            UpdateFileUploadPath(FileUploadPath.Fertilizer, fileUpload, fertilizer.Id);
            ClearAllFileUpload();

            var message = string.Format(Constant.SuccessMessage, fertilizerModel.Id > 0 ? "updated" : "added");

            return(ShowSuccessMessage(message));
        }