Пример #1
0
        public async Task <CompanyEmail> Create(CompanyEmail CompanyEmail)
        {
            if (!await CompanyEmailValidator.Create(CompanyEmail))
            {
                return(CompanyEmail);
            }

            try
            {
                CompanyEmail.CreatorId     = CurrentContext.UserId;
                CompanyEmail.EmailStatusId = EmailStatusEnum.NOT_DONE.Id;
                await UOW.CompanyEmailRepository.Create(CompanyEmail);

                CompanyEmail = await UOW.CompanyEmailRepository.Get(CompanyEmail.Id);

                await Logging.CreateAuditLog(CompanyEmail, new { }, nameof(CompanyEmailService));

                return(CompanyEmail);
            }
            catch (Exception ex)
            {
                await Logging.CreateSystemLog(ex, nameof(CompanyEmailService));
            }
            return(null);
        }
Пример #2
0
 public async Task <bool> Delete(CompanyEmail CompanyEmail)
 {
     if (await ValidateId(CompanyEmail))
     {
     }
     return(CompanyEmail.IsValidated);
 }
Пример #3
0
 public async Task <bool> Update(CompanyEmail CompanyEmail)
 {
     if (await ValidateId(CompanyEmail))
     {
         await ValidateReciepient(CompanyEmail);
     }
     return(CompanyEmail.IsValidated);
 }
Пример #4
0
        public async Task <bool> Delete(CompanyEmail CompanyEmail)
        {
            await DataContext.CompanyEmail.Where(x => x.Id == CompanyEmail.Id).UpdateFromQueryAsync(x => new CompanyEmailDAO {
                DeletedAt = StaticParams.DateTimeNow, UpdatedAt = StaticParams.DateTimeNow
            });

            return(true);
        }
Пример #5
0
        public async Task <CompanyEmail> Get(long Id)
        {
            CompanyEmail CompanyEmail = await UOW.CompanyEmailRepository.Get(Id);

            if (CompanyEmail == null)
            {
                return(null);
            }
            return(CompanyEmail);
        }
Пример #6
0
        public async Task <CompanyEmail> Send(CompanyEmail CompanyEmail)
        {
            try
            {
                var oldData = await UOW.CompanyEmailRepository.Get(CompanyEmail.Id);

                if (oldData == null)
                {
                    await Create(CompanyEmail);
                }
                else
                {
                    await Update(CompanyEmail);
                }

                var AppUserIds  = CompanyEmail.CompanyEmailCCMappings?.Select(x => x.AppUserId).ToList();
                var Reciepients = new List <string>();
                Reciepients.Add(CompanyEmail.Reciepient);
                if (AppUserIds != null && AppUserIds.Count > 0)
                {
                    AppUserFilter AppUserFilter = new AppUserFilter
                    {
                        Skip    = 0,
                        Take    = int.MaxValue,
                        Selects = AppUserSelect.Id | AppUserSelect.Email
                    };
                    var AppUsers = await UOW.AppUserRepository.List(AppUserFilter);

                    var AppUserEmails = AppUsers.Select(x => x.Email).ToList();
                    Reciepients.AddRange(AppUserEmails);
                }
                Mail mail = new Mail
                {
                    Subject    = CompanyEmail.Title,
                    Body       = CompanyEmail.Content,
                    Recipients = Reciepients,
                    RowId      = Guid.NewGuid()
                };
                RabbitManager.PublishSingle(new EventMessage <Mail>(mail, mail.RowId), RoutingKeyEnum.MailSend);
                CompanyEmail.EmailStatusId = EmailStatusEnum.DONE.Id;
                await UOW.CompanyEmailRepository.Update(CompanyEmail);

                CompanyEmail = await UOW.CompanyEmailRepository.Get(CompanyEmail.Id);

                await Logging.CreateAuditLog(CompanyEmail, new { }, nameof(CompanyEmailService));

                return(CompanyEmail);
            }
            catch (Exception ex)
            {
                await Logging.CreateSystemLog(ex, nameof(CompanyEmailService));
            }
            return(null);
        }
Пример #7
0
 public Company_CompanyEmailDTO(CompanyEmail CompanyEmail)
 {
     this.Id                     = CompanyEmail.Id;
     this.Title                  = CompanyEmail.Title;
     this.Content                = CompanyEmail.Content;
     this.Reciepient             = CompanyEmail.Reciepient;
     this.CompanyId              = CompanyEmail.CompanyId;
     this.CreatorId              = CompanyEmail.CreatorId;
     this.EmailStatusId          = CompanyEmail.EmailStatusId;
     this.Creator                = CompanyEmail.Creator == null ? null : new Company_AppUserDTO(CompanyEmail.Creator);
     this.EmailStatus            = CompanyEmail.EmailStatus == null ? null : new Company_EmailStatusDTO(CompanyEmail.EmailStatus);
     this.CompanyEmailCCMappings = CompanyEmail.CompanyEmailCCMappings?.Select(x => new Company_CompanyEmailCCMappingDTO(x)).ToList();
     this.Errors                 = CompanyEmail.Errors;
 }
Пример #8
0
        public async Task <ActionResult <Company_CompanyEmailDTO> > GetCompanyEmail([FromBody] Company_CompanyEmailDTO Company_CompanyEmailDTO)
        {
            if (UnAuthorization)
            {
                return(Forbid());
            }
            if (!ModelState.IsValid)
            {
                throw new BindException(ModelState);
            }

            CompanyEmail CompanyEmail = await CompanyEmailService.Get(Company_CompanyEmailDTO.Id);

            return(new Company_CompanyEmailDTO(CompanyEmail));
        }
Пример #9
0
 private async Task <bool> ValidateReciepient(CompanyEmail CompanyEmail)
 {
     if (string.IsNullOrWhiteSpace(CompanyEmail.Reciepient))
     {
         CompanyEmail.AddError(nameof(CompanyEmailValidator), nameof(CompanyEmail.Reciepient), ErrorCode.ReciepientEmpty);
     }
     else
     {
         if (!IsValidEmail(CompanyEmail.Reciepient))
         {
             CompanyEmail.AddError(nameof(CompanyEmailValidator), nameof(CompanyEmail.Reciepient), ErrorCode.ReciepientEmailInvalid);
         }
         if (CompanyEmail.Reciepient.Length > 255)
         {
             CompanyEmail.AddError(nameof(CompanyEmailValidator), nameof(CompanyEmail.Reciepient), ErrorCode.ReciepientEmailOverLength);
         }
     }
     return(CompanyEmail.IsValidated);
 }
Пример #10
0
        private async Task SaveReference(CompanyEmail CompanyEmail)
        {
            await DataContext.CompanyEmailCCMapping.Where(x => x.CompanyEmailId == CompanyEmail.Id).DeleteFromQueryAsync();

            if (CompanyEmail.CompanyEmailCCMappings != null)
            {
                List <CompanyEmailCCMappingDAO> CompanyEmailCCMappingDAOs = new List <CompanyEmailCCMappingDAO>();
                foreach (var CompanyEmailCCMapping in CompanyEmail.CompanyEmailCCMappings)
                {
                    CompanyEmailCCMappingDAO CompanyEmailCCMappingDAO = new CompanyEmailCCMappingDAO
                    {
                        AppUserId      = CompanyEmailCCMapping.AppUserId,
                        CompanyEmailId = CompanyEmail.Id,
                    };
                    CompanyEmailCCMappingDAOs.Add(CompanyEmailCCMappingDAO);
                }
                await DataContext.BulkMergeAsync(CompanyEmailCCMappingDAOs);
            }
        }
Пример #11
0
        public async Task <bool> ValidateId(CompanyEmail CompanyEmail)
        {
            CompanyEmailFilter CompanyEmailFilter = new CompanyEmailFilter
            {
                Skip = 0,
                Take = 10,
                Id   = new IdFilter {
                    Equal = CompanyEmail.Id
                },
                Selects = CompanyEmailSelect.Id
            };

            int count = await UOW.CompanyEmailRepository.Count(CompanyEmailFilter);

            if (count == 0)
            {
                CompanyEmail.AddError(nameof(CompanyEmailValidator), nameof(CompanyEmail.Id), ErrorCode.IdNotExisted);
            }
            return(count == 1);
        }
Пример #12
0
        public async Task <bool> Create(CompanyEmail CompanyEmail)
        {
            CompanyEmailDAO CompanyEmailDAO = new CompanyEmailDAO();

            CompanyEmailDAO.Id            = CompanyEmail.Id;
            CompanyEmailDAO.Title         = CompanyEmail.Title;
            CompanyEmailDAO.Content       = CompanyEmail.Content;
            CompanyEmailDAO.Reciepient    = CompanyEmail.Reciepient;
            CompanyEmailDAO.CompanyId     = CompanyEmail.CompanyId;
            CompanyEmailDAO.CreatorId     = CompanyEmail.CreatorId;
            CompanyEmailDAO.EmailStatusId = CompanyEmail.EmailStatusId;
            CompanyEmailDAO.CreatedAt     = StaticParams.DateTimeNow;
            CompanyEmailDAO.UpdatedAt     = StaticParams.DateTimeNow;
            DataContext.CompanyEmail.Add(CompanyEmailDAO);
            await DataContext.SaveChangesAsync();

            CompanyEmail.Id = CompanyEmailDAO.Id;
            await SaveReference(CompanyEmail);

            return(true);
        }
Пример #13
0
        public async Task <CompanyEmail> Delete(CompanyEmail CompanyEmail)
        {
            if (!await CompanyEmailValidator.Delete(CompanyEmail))
            {
                return(CompanyEmail);
            }

            try
            {
                await UOW.CompanyEmailRepository.Delete(CompanyEmail);

                await Logging.CreateAuditLog(new { }, CompanyEmail, nameof(CompanyEmailService));

                return(CompanyEmail);
            }
            catch (Exception ex)
            {
                await Logging.CreateSystemLog(ex, nameof(CompanyEmailService));
            }
            return(null);
        }
Пример #14
0
        public async Task <bool> Update(CompanyEmail CompanyEmail)
        {
            CompanyEmailDAO CompanyEmailDAO = DataContext.CompanyEmail.Where(x => x.Id == CompanyEmail.Id).FirstOrDefault();

            if (CompanyEmailDAO == null)
            {
                return(false);
            }
            CompanyEmailDAO.Id            = CompanyEmail.Id;
            CompanyEmailDAO.Title         = CompanyEmail.Title;
            CompanyEmailDAO.Content       = CompanyEmail.Content;
            CompanyEmailDAO.Reciepient    = CompanyEmail.Reciepient;
            CompanyEmailDAO.CompanyId     = CompanyEmail.CompanyId;
            CompanyEmailDAO.CreatorId     = CompanyEmail.CreatorId;
            CompanyEmailDAO.EmailStatusId = CompanyEmail.EmailStatusId;
            CompanyEmailDAO.UpdatedAt     = StaticParams.DateTimeNow;
            await DataContext.SaveChangesAsync();

            await SaveReference(CompanyEmail);

            return(true);
        }
Пример #15
0
        public async Task <CompanyEmail> Update(CompanyEmail CompanyEmail)
        {
            if (!await CompanyEmailValidator.Update(CompanyEmail))
            {
                return(CompanyEmail);
            }
            try
            {
                var oldData = await UOW.CompanyEmailRepository.Get(CompanyEmail.Id);

                await UOW.CompanyEmailRepository.Update(CompanyEmail);

                CompanyEmail = await UOW.CompanyEmailRepository.Get(CompanyEmail.Id);

                await Logging.CreateAuditLog(CompanyEmail, oldData, nameof(CompanyEmailService));

                return(CompanyEmail);
            }
            catch (Exception ex)
            {
                await Logging.CreateSystemLog(ex, nameof(CompanyEmailService));
            }
            return(null);
        }
Пример #16
0
        public async Task <CompanyEmail> Get(long Id)
        {
            CompanyEmail CompanyEmail = await DataContext.CompanyEmail.AsNoTracking()
                                        .Where(x => x.Id == Id)
                                        .Where(x => x.DeletedAt == null)
                                        .Select(x => new CompanyEmail()
            {
                CreatedAt     = x.CreatedAt,
                UpdatedAt     = x.UpdatedAt,
                Id            = x.Id,
                Title         = x.Title,
                Content       = x.Content,
                Reciepient    = x.Reciepient,
                CompanyId     = x.CompanyId,
                CreatorId     = x.CreatorId,
                EmailStatusId = x.EmailStatusId,
                Company       = x.Company == null ? null : new Company
                {
                    Id         = x.Company.Id,
                    Name       = x.Company.Name,
                    Phone      = x.Company.Phone,
                    FAX        = x.Company.FAX,
                    PhoneOther = x.Company.PhoneOther,
                    Email      = x.Company.Email,
                    EmailOther = x.Company.EmailOther,
                },
                Creator = x.Creator == null ? null : new AppUser
                {
                    Id             = x.Creator.Id,
                    Username       = x.Creator.Username,
                    DisplayName    = x.Creator.DisplayName,
                    Address        = x.Creator.Address,
                    Email          = x.Creator.Email,
                    Phone          = x.Creator.Phone,
                    SexId          = x.Creator.SexId,
                    Birthday       = x.Creator.Birthday,
                    Avatar         = x.Creator.Avatar,
                    Department     = x.Creator.Department,
                    OrganizationId = x.Creator.OrganizationId,
                    Longitude      = x.Creator.Longitude,
                    Latitude       = x.Creator.Latitude,
                    StatusId       = x.Creator.StatusId,
                    RowId          = x.Creator.RowId,
                    Used           = x.Creator.Used,
                },
                EmailStatus = x.EmailStatus == null ? null : new EmailStatus
                {
                    Id   = x.EmailStatus.Id,
                    Code = x.EmailStatus.Code,
                    Name = x.EmailStatus.Name,
                },
            }).FirstOrDefaultAsync();

            if (CompanyEmail == null)
            {
                return(null);
            }

            CompanyEmail.CompanyEmailCCMappings = await DataContext.CompanyEmailCCMapping
                                                  .Where(x => x.CompanyEmailId == Id)
                                                  .Select(x => new CompanyEmailCCMapping
            {
                CompanyEmailId = x.CompanyEmailId,
                AppUserId      = x.AppUserId,
                AppUser        = x.AppUser == null ? null : new AppUser
                {
                    Id          = x.AppUser.Id,
                    Username    = x.AppUser.Username,
                    DisplayName = x.AppUser.DisplayName,
                    Email       = x.AppUser.Email,
                }
            }).ToListAsync();

            return(CompanyEmail);
        }
Пример #17
0
 public RedirectToRouteResult Delete_POST(CompanyEmail item)
 {
     _companyEmailService.Delete(item);
     return(RedirectToAction("Edit", "Webpage", new { id = item.Company.Id }));
 }
Пример #18
0
 public void Add(CompanyEmail email)
 {
     email.Company.Emails.Add(email);//required to bust page cache
     _session.Transact(session => session.Save(email));
 }
Пример #19
0
 public void Update(CompanyEmail email)
 {
     _session.Transact(session => session.Update(email));
 }
Пример #20
0
 public void Delete(CompanyEmail email)
 {
     email.Company.Emails.Remove(email);//required to bust page cache
     _session.Transact(session => session.Delete(email));
 }
Пример #21
0
 public PartialViewResult Delete(CompanyEmail item)
 {
     return(PartialView(item));
 }
Пример #22
0
        public async Task <bool> Create(CompanyEmail CompanyEmail)
        {
            await ValidateReciepient(CompanyEmail);

            return(CompanyEmail.IsValidated);
        }
Пример #23
0
 public PartialViewResult Edit(CompanyEmail item)
 {
     return(PartialView(item));
 }