Пример #1
0
        public CatChargeAddOrUpdateModel GetChargeById(Guid id)
        {
            CatChargeAddOrUpdateModel returnCharge = new CatChargeAddOrUpdateModel();
            var charge            = DataContext.Get(x => x.Id == id).FirstOrDefault();
            var listChargeDefault = chargeDefaultRepository.Get(x => x.ChargeId == id).ToList();

            returnCharge.Charge = charge;

            // Update permission
            ICurrentUser _user = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catCharge);
            var          permissionRangeWrite = PermissionExtention.GetPermissionRange(currentUser.UserMenuPermission.Write);

            BaseUpdateModel baseModel = new BaseUpdateModel
            {
                UserCreated  = returnCharge.Charge.UserCreated,
                CompanyId    = returnCharge.Charge.CompanyId,
                DepartmentId = returnCharge.Charge.DepartmentId,
                OfficeId     = returnCharge.Charge.OfficeId,
                GroupId      = returnCharge.Charge.GroupId
            };

            returnCharge.Permission = new PermissionAllowBase
            {
                AllowUpdate = PermissionExtention.GetPermissionDetail(permissionRangeWrite, baseModel, currentUser),
            };

            returnCharge.ListChargeDefaultAccount = listChargeDefault;

            return(returnCharge);
        }
Пример #2
0
        public HandleState UpdateCharge(CatChargeAddOrUpdateModel model)
        {
            using (var trans = DataContext.DC.Database.BeginTransaction())
            {
                try
                {
                    model.Charge.UserModified     = currentUser.UserID;
                    model.Charge.DatetimeModified = DateTime.Now;
                    model.Charge.GroupId          = currentUser.GroupId;
                    model.Charge.DepartmentId     = currentUser.DepartmentId;
                    model.Charge.OfficeId         = currentUser.OfficeID;
                    model.Charge.CompanyId        = currentUser.CompanyID;
                    var hs = DataContext.Update(model.Charge, x => x.Id == model.Charge.Id, false);
                    if (hs.Success == false)
                    {
                        return(hs);
                    }

                    foreach (var item in model.ListChargeDefaultAccount)
                    {
                        if (item.Id == 0)
                        {
                            item.ChargeId        = model.Charge.Id;
                            item.UserCreated     = item.UserModified = currentUser.UserID;
                            item.DatetimeCreated = item.DatetimeModified = DateTime.Now;
                            chargeDefaultRepository.Add(item, false);
                        }
                        else
                        {
                            chargeDefaultRepository.Delete(x => x.ChargeId == item.ChargeId);
                            item.UserModified     = currentUser.UserID;
                            item.DatetimeModified = DateTime.Now;
                            item.Id = 0;
                            chargeDefaultRepository.Add(item, false);
                        }
                    }
                    chargeDefaultRepository.SubmitChanges();
                    DataContext.SubmitChanges();
                    trans.Commit();
                    ClearCache();
                    Get();
                    return(hs);
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    return(new HandleState(ex.Message));
                }
                finally
                {
                    trans.Dispose();
                }
            }
        }
Пример #3
0
        public HandleState AddCharge(CatChargeAddOrUpdateModel model)
        {
            using (var trans = DataContext.DC.Database.BeginTransaction())
            {
                Guid chargeId = Guid.NewGuid();
                model.Charge.Id              = chargeId;
                model.Charge.Active          = true;
                model.Charge.UserCreated     = model.Charge.UserModified = currentUser.UserID;
                model.Charge.DatetimeCreated = DateTime.Now;

                // Update permission
                model.Charge.GroupId      = currentUser.GroupId;
                model.Charge.DepartmentId = currentUser.DepartmentId;
                model.Charge.OfficeId     = currentUser.OfficeID;
                model.Charge.CompanyId    = currentUser.CompanyID;

                try
                {
                    var hs = DataContext.Add(model.Charge, false);
                    if (hs.Success == false)
                    {
                        return(hs);
                    }
                    foreach (var x in model.ListChargeDefaultAccount)
                    {
                        x.ChargeId        = chargeId;
                        x.Active          = true;
                        x.UserCreated     = x.UserModified = currentUser.UserID;
                        x.DatetimeCreated = DateTime.Now;
                        chargeDefaultRepository.Add(x, false);
                    }
                    chargeDefaultRepository.SubmitChanges();
                    DataContext.SubmitChanges();
                    ClearCache();
                    Get();
                    trans.Commit();
                    return(hs);
                }
                catch (Exception ex)
                {
                    trans.Rollback();
                    return(new HandleState(ex.Message));
                }
                finally
                {
                    trans.Dispose();
                }
            }
        }
Пример #4
0
        private string CheckExist(Guid id, CatChargeAddOrUpdateModel model)
        {
            string message = string.Empty;

            if (id == Guid.Empty)
            {
                if (catChargeService.Any(x => (x.Code.ToLower() == model.Charge.Code.ToLower())))
                {
                    message = stringLocalizer[LanguageSub.MSG_CODE_EXISTED].Value;
                }
            }
            else
            {
                if (catChargeService.Any(x => ((x.Code.ToLower() == model.Charge.Code.ToLower())) && x.Id != id))
                {
                    message = stringLocalizer[LanguageSub.MSG_CODE_EXISTED].Value;
                }
            }
            return(message);
        }
Пример #5
0
        public IActionResult Update(CatChargeAddOrUpdateModel model)
        {
            ICurrentUser    _user           = PermissionExtention.GetUserMenuPermission(currentUser, Menu.catCharge);
            PermissionRange permissionRange = PermissionExtention.GetPermissionRange(_user.UserMenuPermission.Write);

            if (permissionRange == PermissionRange.None || !catChargeService.CheckAllowPermissionAction(model.Charge.Id, permissionRange))
            {
                return(BadRequest(new ResultHandle {
                    Status = false, Message = stringLocalizer[LanguageSub.DO_NOT_HAVE_PERMISSION].Value
                }));
            }

            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }
            var checkExistMessage = CheckExist(model.Charge.Id, model);

            if (checkExistMessage.Length > 0)
            {
                return(BadRequest(new ResultHandle {
                    Status = false, Message = checkExistMessage
                }));
            }
            var          hs      = catChargeService.UpdateCharge(model);
            var          message = HandleError.GetMessage(hs, Crud.Update);
            ResultHandle result  = new ResultHandle {
                Status = hs.Success, Message = stringLocalizer[message].Value
            };

            if (!hs.Success)
            {
                return(BadRequest(result));
            }
            return(Ok(result));
        }