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); }
public async Task <bool> Delete(CompanyEmail CompanyEmail) { if (await ValidateId(CompanyEmail)) { } return(CompanyEmail.IsValidated); }
public async Task <bool> Update(CompanyEmail CompanyEmail) { if (await ValidateId(CompanyEmail)) { await ValidateReciepient(CompanyEmail); } return(CompanyEmail.IsValidated); }
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); }
public async Task <CompanyEmail> Get(long Id) { CompanyEmail CompanyEmail = await UOW.CompanyEmailRepository.Get(Id); if (CompanyEmail == null) { return(null); } return(CompanyEmail); }
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); }
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; }
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)); }
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); }
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); } }
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); }
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); }
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); }
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); }
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); }
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); }
public RedirectToRouteResult Delete_POST(CompanyEmail item) { _companyEmailService.Delete(item); return(RedirectToAction("Edit", "Webpage", new { id = item.Company.Id })); }
public void Add(CompanyEmail email) { email.Company.Emails.Add(email);//required to bust page cache _session.Transact(session => session.Save(email)); }
public void Update(CompanyEmail email) { _session.Transact(session => session.Update(email)); }
public void Delete(CompanyEmail email) { email.Company.Emails.Remove(email);//required to bust page cache _session.Transact(session => session.Delete(email)); }
public PartialViewResult Delete(CompanyEmail item) { return(PartialView(item)); }
public async Task <bool> Create(CompanyEmail CompanyEmail) { await ValidateReciepient(CompanyEmail); return(CompanyEmail.IsValidated); }
public PartialViewResult Edit(CompanyEmail item) { return(PartialView(item)); }