public virtual JsonResult SubmitChange(AddDiscountModel model) { if (model.DiscountType == 0) { return(Json(new ActionResponse <bool> { Message = LocalMessage.InvalidDiscountType }, JsonRequestBehavior.AllowGet)); } if (model.CodeType == 0) { return(Json(new ActionResponse <bool> { Message = LocalMessage.InvalidCodeType }, JsonRequestBehavior.AllowGet)); } if (model.Value == 0) { return(Json(new ActionResponse <bool> { Message = LocalMessage.InvalidValue }, JsonRequestBehavior.AllowGet)); } if (model.Ceiling == 0 && model.DiscountType == DiscountType.PercentageWithCeiling) { return(Json(new ActionResponse <bool> { Message = LocalMessage.InvalidCelling }, JsonRequestBehavior.AllowGet)); } if (model.IsNotNull().And(ModelState.IsValid)) { model.UserId = (User as ICurrentUserPrincipal).UserId; return(Json(_discountBusiness.Generate(model), JsonRequestBehavior.AllowGet)); } return(Json(new ActionResponse <bool> { Message = LocalMessage.BadRequest }, JsonRequestBehavior.AllowGet)); }
public IActionResponse <bool> Generate(AddDiscountModel model) { var response = new ActionResponse <bool>(); if (model.Count <= 0) { response.Message = BusinessMessage.InvalidCodeCount; return(response); } if (model.CodeLength < 12) { response.Message = BusinessMessage.TheMinimumNumberOfCharactersIs8; return(response); } int insertedCount = 0; while (insertedCount < model.Count) { using (var dbContextTransaction = _uow.Database.BeginTransaction()) { try { int tempCount = model.Count - insertedCount; for (int i = 1; i <= (tempCount >= 50 ? 50 : tempCount); i++) { _discount.Add(new Discount { Ceiling = model.Ceiling, Code = model.Code,//GenerateCode(type: model.CodeType), CodeType = model.CodeType, DiscountType = model.DiscountType, ForFirstUser = model.ForFirstUser, UseForOnce = model.UseForOnce, IsUsed = false, ValidFromDateMi = PersianDateTime.Parse(model.ValidFromDateSh).ToDateTime(), ValidFromDateSh = model.ValidFromDateSh, ValidToDateMi = PersianDateTime.Parse(model.ValidToDateSh).ToDateTime(), ValidToDateSh = model.ValidToDateSh, Value = model.Value, UserId = model.UserId, }); } var result = _uow.SaveChanges(); if (result <= 0) { throw new Exception("Unchange or Error in Operation!"); } dbContextTransaction.Commit(); insertedCount += (tempCount >= 50 ? 50 : tempCount); } catch (Exception e) { dbContextTransaction.Rollback(); FileLoger.Error(e); } } } response.IsSuccessful = response.Result = (insertedCount == model.Count); response.Message = response.IsSuccessful ? BusinessMessage.Success : BusinessMessage.Error; return(response); }