Ejemplo n.º 1
0
        public async Task <IBusinessResult> AddOrModfiyFinalPromotionAsync(List <MemberPromotion> entities)
        {
            var result = new BusinessResult();

            try
            {
                var result_validator = lstValidationRules.Validate(entities);
                if (!result_validator.IsValid)
                {
                    result.PopulateValidationErrors(result_validator.Errors);
                    return(result);
                }

                entities.ForEach(memshar =>
                {
                    unitOfWork.MemberPromotionDataService.Update(memshar);
                });
                await unitOfWork.CommitAsync();

                result.ReturnMessage.Add(MESSAGE_ADD_ENTITY);
            }
            catch (Exception ex)
            {
                CatchException(ex, result, "");
            }
            return(result);
        }
Ejemplo n.º 2
0
        public async Task <IBusinessResult> AddOrUpdateAsync(CostCoefficient entity)
        {
            var result = new BusinessResult();

            try
            {
                ValidationResult validationResult = validator.Validate(entity);
                if (validationResult.IsValid == false)
                {
                    result.PopulateValidationErrors(validationResult.Errors);
                    return(result);
                }
                entity.Records.ForEach(x => unitOfWork.CostCoefficientDataService.InsertOrUpdate(x));

                await unitOfWork.CommitAsync();

                result.ReturnStatus = true;
                result.ReturnMessage.Add("ثبت اطلاعات با موفقیت انجام گردید");
            }
            catch (Exception ex)
            {
                CatchException(ex, result, "");
            }
            return(result);
        }
Ejemplo n.º 3
0
        public virtual async Task <IBusinessResult> UpdateAsync(TEntity entity)
        {
            var result = new BusinessResult();

            try
            {
                if (validator != null)
                {
                    ValidationResult results = await validator.ValidateAsync(entity);

                    bool validationSucceeded           = results.IsValid;
                    IList <ValidationFailure> failures = results.Errors;

                    if (validationSucceeded == false)
                    {
                        result.PopulateValidationErrors(failures);
                        return(result);
                    }
                }
                dataRepository.Update(entity);
                await unitOfWork.CommitAsync();

                result.ReturnStatus = true;
                result.ReturnMessage.Add(".ویرایش اطلاعات با موفقیت انجام شد");
            }
            catch (Exception ex)
            {
                CatchException(ex, result, "");
            }
            return(result);
        }
Ejemplo n.º 4
0
        public async Task <IBusinessResult> DeleteOrgStructureShareDTOAsync(OrgStructureShareDTO personelShareDTO)
        {
            var result = new BusinessResult();

            try
            {
                personelShareDTO.Items
                .Where(x => x.Id != 0)
                .ToList()
                .ForEach(x =>
                {
                    unitOfWork.OrgStructureShareDataService.Delete(x);
                });
                await unitOfWork.CommitAsync();

                result.ReturnMessage.Add(" اطلاعات با موفقیت حذف شد");
            }
            catch (DbEntityValidationException ex)
            {
                result.PopulateValidationErrors(ex);
            }
            catch (Exception ex)
            {
                CatchException(ex, result, "");
            }
            return(result);
        }
        public async Task <IBusinessResult> SaveAsync(List <FulfillmentPromotionCondition> lstGeneralGoal)
        {
            var result = new BusinessResult();

            try
            {
                lstGeneralGoal = lstGeneralGoal.Where(x => x.ManagerPromotion.HasValue || x.TotalSalesFulfilledPercent.HasValue ||
                                                      x.PrivateReceiptFulfilledPercent.HasValue || x.SellerPromotion.HasValue ||
                                                      x.TotalReceiptFulfilledPercent.HasValue).ToList();
                var validatorResult = await validator.ValidateAsync(lstGeneralGoal);

                if (validatorResult.IsValid == false)
                {
                    result.PopulateValidationErrors(validatorResult.Errors);
                    return(result);
                }
                var totalFulfillEnity = lstGeneralGoal.FirstOrDefault();
                lstGeneralGoal.ForEach(x => unitOfWork.TotalFulfillPromotionPercentDataService.InsertOrUpdate(x));
                await unitOfWork.CommitAsync();

                result.ReturnMessage.Add(MESSAGE_ADD_ENTITY);
            }
            catch (Exception ex)
            {
                CatchException(ex, result, "");
            }
            return(result);
        }
Ejemplo n.º 6
0
        public async Task <IBusinessResult> CreateOrModifyPermissionAsync(Permission permission)
        {
            var result = new BusinessResult();

            try
            {
                var lst_existPermissions = await unitOfWork.PermissionDataService.GetAsync(x => x.RoleId == permission.RoleId
                                                                                           , includes : x => x.ApplicationAction);

                var lst_newAppActions = await unitOfWork.ApplicationActionDataService
                                        .GetAsync(x => permission.Urls.Contains(x.HtmlUrl));

                var lst_existAppActions = lst_existPermissions.Select(x => x.ApplicationAction);

                var lst_removeAppActions = lst_existAppActions.Except(lst_newAppActions, x => x.Id);
                var lst_insertAppActions = lst_newAppActions.Except(lst_existAppActions, x => x.Id);

                (from revAct in lst_removeAppActions
                 join extPermission in lst_existPermissions
                 on revAct.Id equals extPermission.ApplicationActionId
                 select extPermission)
                .ToList()
                .ForEach(extPermission =>
                {
                    unitOfWork.PermissionDataService.Delete(extPermission);
                });

                foreach (var act in lst_insertAppActions)
                {
                    unitOfWork.PermissionDataService.Insert(new Permission
                    {
                        RoleId = permission.RoleId,
                        ApplicationActionId = act.Id
                    });
                }

                await unitOfWork.CommitAsync();

                result.ReturnStatus = true;
                result.ReturnMessage.Add("سطوح دسترسی برای نقش اننخاب شده با موفقیت تعریف شد");
            }
            catch (DbEntityValidationException ex)
            {
                result.PopulateValidationErrors(ex);
            }
            catch (Exception ex)
            {
                CatchException(ex, result, "");
            }
            return(result);
        }
Ejemplo n.º 7
0
        public async Task <IBusinessResult> CreateOrEditAsync(List <OrgStructure> lstOrgStructure)
        {
            var result = new BusinessResult();

            try
            {
                var rslt_validator = validator.Validate(lstOrgStructure);
                if (rslt_validator.IsValid == false)
                {
                    result.PopulateValidationErrors(rslt_validator.Errors);
                    result.ReturnStatus = false;
                    return(result);
                }
                var positionTypeId = lstOrgStructure.FirstOrDefault().PositionTypeId;
                var lst_ExistsData = await unitOfWork.OrgStructureDataService.GetAsync(x => x.PositionTypeId == positionTypeId);

                var lst_newData = lstOrgStructure.Except(lst_ExistsData, x => x.BranchId);

                // add new orgsturctures
                foreach (var item in lst_newData)
                {
                    unitOfWork.OrgStructureDataService.Insert(item);
                }

                var lst_removeData = lst_ExistsData.Except(lstOrgStructure, x => x.BranchId);

                // delete new orgsturctures
                foreach (var item in lst_removeData)
                {
                    unitOfWork.OrgStructureDataService.Delete(item);
                }

                await unitOfWork.CommitAsync();

                result.ReturnMessage.Add(MESSAGE_ADD_ENTITY);
                result.ReturnStatus = true;
            }
            catch (Exception ex)
            {
                CatchException(ex, result, "", "");
            }
            return(result);
        }
Ejemplo n.º 8
0
        public async Task <IBusinessResult> UpdateGoalAsync(Goal goalEntity)
        {
            var result = new BusinessResult();

            try
            {
                if (goalEntity.IsUsed == true)
                {
                    result.ReturnMessage.Add("هدف برای محاسبه پورسانت استفاده شده است و امکان تغییر اطلاعات هدف وجود ندارد");
                    result.ReturnStatus = false;
                    return(result);
                }

                if (goalEntity.GoalGoodsCategoryTypeId >= GoalGoodsCategoryTypeEnum.TotalSalesGoal &&
                    goalEntity.GoalGoodsCategoryTypeId <= GoalGoodsCategoryTypeEnum.ReceiptGovernGoal)
                {
                    var generalGoalStep = await unitOfWork.GoalStepDataService.FirstOrDefaultAsync(x => x.GoalId == goalEntity.Id);

                    generalGoalStep.ComputingValue = goalEntity.Amount.Value;
                    goalEntity.GoalSteps.Add(generalGoalStep);
                }
                ValidationResult results = await validator.ValidateAsync(goalEntity);

                if (results.IsValid == false)
                {
                    result.PopulateValidationErrors(results.Errors);
                    return(result);
                }
                unitOfWork.GoalDataService.Update(goalEntity);
                await unitOfWork.CommitAsync();

                result.ReturnStatus = true;
                result.ReturnMessage.Add(MESSAGE_MODIFY_ENTITY);
            }
            catch (Exception ex)
            {
                CatchException(ex, result, "");
            }
            return(result);
        }
Ejemplo n.º 9
0
        public async Task <IBusinessResult> CreateOrModify(List <ApplicationAction> applicationActions)
        {
            var result = new BusinessResult();

            try
            {
                ValidationResult validationResult = validator.Validate(applicationActions);
                if (validationResult.IsValid == false)
                {
                    result.PopulateValidationErrors(validationResult.Errors);
                    return(result);
                }

                var htmlUrl = applicationActions.FirstOrDefault().HtmlUrl;

                var existData = await unitOfWork.ApplicationActionDataService.GetAsync(x => x.HtmlUrl == htmlUrl);

                var lst_removeActions = existData.Except(applicationActions, x => x.ActionUrl);
                var lst_newActions    = applicationActions.Except(existData, x => x.ActionUrl);

                foreach (var item in lst_newActions)
                {
                    unitOfWork.ApplicationActionDataService.Insert(item);
                }
                foreach (var item in lst_removeActions)
                {
                    unitOfWork.ApplicationActionDataService.Delete(item);
                }
                await unitOfWork.CommitAsync();

                result.ReturnStatus = true;
                result.ReturnMessage.Add(" اطلاعات با موفقیت ثبت گردید");
            }
            catch (Exception ex)
            {
                CatchException(ex, result, "");
            }
            return(result);
        }
Ejemplo n.º 10
0
        public async Task <IBusinessResult> CreateOrUpdateAsync(List <MemberPromotion> entities)
        {
            var result = new BusinessResult();

            try
            {
                var result_validator = lstValidationRules.Validate(entities);
                if (!result_validator.IsValid)
                {
                    result.PopulateValidationErrors(result_validator.Errors);
                    return(result);
                }

                entities.ForEach(x => x.Member = null);

                var branchPromotionId = entities.First().BranchPromotionId;
                var lst_existEntities = await unitOfWork.MemberPromotionDataService
                                        .GetQuery()
                                        .Include(x => x.Details)
                                        .Where(x => x.BranchPromotionId == branchPromotionId && x.Deleted == false)
                                        .AsNoTracking()
                                        .ToListAsync();

                var lst_newEntities = entities.Except(lst_existEntities, x => x.MemberId);
                foreach (var item in lst_newEntities)
                {
                    unitOfWork.MemberPromotionDataService.Insert(item);
                }


                var lst_intersectEntities = entities.Intersect(lst_existEntities, x => x.MemberId);

                //foreach (var item in lst_intersectEntities.Where(x => x.Promotion == 0))
                //{
                //    var exist_item = lst_existEntities.Single(x => x.MemberId == item.MemberId);
                //    var arr_details = new MemberPromotionDetail[exist_item.Details.Count];
                //    exist_item.Details.CopyTo(arr_details, 0);
                //    foreach (var detail in arr_details)
                //        unitOfWork.MemberPromotionDetailDataService.Delete(detail, false);
                //    unitOfWork.MemberPromotionDataService.Delete(exist_item, false);
                //}

                foreach (var item in lst_intersectEntities)
                {
                    var exist_item = lst_existEntities.Single(x => x.MemberId == item.MemberId);

                    foreach (var detail in item.Details)
                    {
                        var exist_item_detail = exist_item.Details.FirstOrDefault(x => x.MemberId == detail.MemberId &&
                                                                                  x.Deleted == false && x.ReviewPromotionStepId == ReviewPromotionStepEnum.Initial ||
                                                                                  x.ReviewPromotionStepId == ReviewPromotionStepEnum.Manager);

                        if (exist_item_detail != null)
                        {
                            exist_item_detail.ReceiptPromotion      = detail.ReceiptPromotion;
                            exist_item_detail.CompensatoryPromotion = detail.CompensatoryPromotion;
                            exist_item_detail.SupplierPromotion     = detail.SupplierPromotion;
                            exist_item_detail.BranchSalesPromotion  = detail.BranchSalesPromotion;
                            exist_item_detail.ReviewPromotionStepId = ReviewPromotionStepEnum.Manager;
                            unitOfWork.MemberPromotionDetailDataService.Update(exist_item_detail);
                        }
                    }
                    unitOfWork.MemberPromotionDataService.Update(exist_item);
                }


                await unitOfWork.CommitAsync();

                result.ReturnMessage.Add(MESSAGE_ADD_ENTITY);

                result.ReturnStatus = true;
            }
            catch (Exception ex)
            {
                CatchException(ex, result, "");
            }
            return(result);
        }