Пример #1
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 <OrgStructureShareDTO> GetOrgStructureShareDTOAsync(int branchId)
        {
            OrgStructureShareDTO result = new OrgStructureShareDTO();

            result.Branch = await(from br in dbContext.Branches where br.Id == branchId select br).FirstOrDefaultAsync();

            var query = await(from org in dbContext.OrgStructures
                              join perShare in dbContext.OrgStructureShare on
                              org.Id equals perShare.OrgStructureId
                              into persOrg
                              where org.BranchId == branchId && org.Deleted == false
                              from final in persOrg.Where(x => x.Deleted == false).DefaultIfEmpty()
                              join post in dbContext.PositionTypes
                              on org.PositionTypeId equals post.eId
                              select new
            {
                Org               = org,
                PositionType      = post,
                OrgStructureShare = final,
            })
                        .ToListAsync();

            result.Items = query.Select(x => new OrgStructureShare
            {
                OrgStructure          = x.Org,
                Branch                = result.Branch,
                BranchId              = branchId,
                OrgStructureId        = x.Org.Id,
                PrivateReceiptPercent = x.OrgStructureShare != null ? x.OrgStructureShare.PrivateReceiptPercent : null,
                TotalReceiptPercent   = x.OrgStructureShare != null ? x.OrgStructureShare.TotalReceiptPercent : null,
                SalesPercent          = x.OrgStructureShare != null ? x.OrgStructureShare.SalesPercent : null,
                MinimumPromotion      = x.OrgStructureShare != null ? x.OrgStructureShare.MinimumPromotion : null,
                MaximumPromotion      = x.OrgStructureShare != null ? x.OrgStructureShare.MaximumPromotion : null,
                Id = x.OrgStructureShare != null ? x.OrgStructureShare.Id : 0,
            }).ToList();

            return(result);
        }
Пример #3
0
        public async Task <IBusinessResultValue <OrgStructureShareDTO> > CreateOrgStructureShareDTOAsync(OrgStructureShareDTO personelShareDTO)
        {
            var result = new BusinessResultValue <OrgStructureShareDTO>();

            try
            {
                ValidationResult validationResult = valdiator.Validate(personelShareDTO);
                if (validationResult.IsValid == false)
                {
                    result.PopulateValidationErrors(validationResult.Errors);
                    return(result);
                }
                personelShareDTO.Items
                .ForEach(x =>
                {
                    x.BranchId = personelShareDTO.Branch.Id;
                    unitOfWork.OrgStructureShareDataService.InsertOrUpdateOrgStructureShare(x);
                });
                await unitOfWork.CommitAsync();

                result.ReturnMessage.Add(MESSAGE_ADD_ENTITY);
                result.ResultValue = personelShareDTO;
            }
            catch (Exception ex)
            {
                CatchException(ex, result, "");
            }

            return(result);
        }