public async Task <bool> Delete(KnowledgeGroup KnowledgeGroup) { if (await ValidateId(KnowledgeGroup)) { } return(KnowledgeGroup.IsValidated); }
public async Task <ActionResult <KnowledgeGroup_KnowledgeGroupDTO> > Delete([FromBody] KnowledgeGroup_KnowledgeGroupDTO KnowledgeGroup_KnowledgeGroupDTO) { if (!ModelState.IsValid) { throw new BindException(ModelState); } if (!await HasPermission(KnowledgeGroup_KnowledgeGroupDTO.Id)) { return(Forbid()); } KnowledgeGroup KnowledgeGroup = ConvertDTOToEntity(KnowledgeGroup_KnowledgeGroupDTO); KnowledgeGroup = await KnowledgeGroupService.Delete(KnowledgeGroup); KnowledgeGroup_KnowledgeGroupDTO = new KnowledgeGroup_KnowledgeGroupDTO(KnowledgeGroup); if (KnowledgeGroup.IsValidated) { return(KnowledgeGroup_KnowledgeGroupDTO); } else { return(BadRequest(KnowledgeGroup_KnowledgeGroupDTO)); } }
public async Task <KnowledgeGroup> Get(long Id) { KnowledgeGroup KnowledgeGroup = await DataContext.KnowledgeGroup.AsNoTracking() .Where(x => x.Id == Id).Select(x => new KnowledgeGroup() { CreatedAt = x.CreatedAt, UpdatedAt = x.UpdatedAt, Id = x.Id, Name = x.Name, Code = x.Code, StatusId = x.StatusId, DisplayOrder = x.DisplayOrder, Description = x.Description, Status = x.Status == null ? null : new Status { Id = x.Status.Id, Code = x.Status.Code, Name = x.Status.Name, }, }).FirstOrDefaultAsync(); if (KnowledgeGroup == null) { return(null); } return(KnowledgeGroup); }
public async Task <bool> ValidateStatus(KnowledgeGroup KnowledgeGroup) { if (StatusEnum.ACTIVE.Id != KnowledgeGroup.StatusId && StatusEnum.INACTIVE.Id != KnowledgeGroup.StatusId) { KnowledgeGroup.AddError(nameof(KnowledgeGroupValidator), nameof(KnowledgeGroup.Status), ErrorCode.StatusNotExisted); } return(KnowledgeGroup.IsValidated); }
public async Task <bool> Create(KnowledgeGroup KnowledgeGroup) { await ValidateCode(KnowledgeGroup); await ValidateName(KnowledgeGroup); await ValidateStatus(KnowledgeGroup); return(KnowledgeGroup.IsValidated); }
public async Task <bool> Delete(KnowledgeGroup KnowledgeGroup) { await DataContext.KnowledgeGroup.Where(x => x.Id == KnowledgeGroup.Id).UpdateFromQueryAsync(x => new KnowledgeGroupDAO { DeletedAt = StaticParams.DateTimeNow }); return(true); }
public async Task <KnowledgeGroup> Get(long Id) { KnowledgeGroup KnowledgeGroup = await UOW.KnowledgeGroupRepository.Get(Id); if (KnowledgeGroup == null) { return(null); } return(KnowledgeGroup); }
public async Task <bool> Update(KnowledgeGroup KnowledgeGroup) { if (await ValidateId(KnowledgeGroup)) { await ValidateCode(KnowledgeGroup); await ValidateName(KnowledgeGroup); await ValidateStatus(KnowledgeGroup); } return(KnowledgeGroup.IsValidated); }
public async Task <bool> ValidateName(KnowledgeGroup KnowledgeGroup) { if (string.IsNullOrWhiteSpace(KnowledgeGroup.Name)) { KnowledgeGroup.AddError(nameof(KnowledgeGroupValidator), nameof(KnowledgeGroup.Name), ErrorCode.NameEmpty); } else if (KnowledgeGroup.Name.Length > 255) { KnowledgeGroup.AddError(nameof(KnowledgeGroupValidator), nameof(KnowledgeGroup.Name), ErrorCode.NameOverLength); } return(KnowledgeGroup.IsValidated); }
public KnowledgeGroup_KnowledgeGroupDTO(KnowledgeGroup KnowledgeGroup) { this.Id = KnowledgeGroup.Id; this.Name = KnowledgeGroup.Name; this.Code = KnowledgeGroup.Code; this.StatusId = KnowledgeGroup.StatusId; this.DisplayOrder = KnowledgeGroup.DisplayOrder; this.Description = KnowledgeGroup.Description; this.Status = KnowledgeGroup.Status == null ? null : new KnowledgeGroup_StatusDTO(KnowledgeGroup.Status); this.CreatedAt = KnowledgeGroup.CreatedAt; this.UpdatedAt = KnowledgeGroup.UpdatedAt; this.Errors = KnowledgeGroup.Errors; }
public Role_KnowledgeGroupDTO(KnowledgeGroup KnowledgeGroup) { this.Id = KnowledgeGroup.Id; this.Name = KnowledgeGroup.Name; this.Code = KnowledgeGroup.Code; this.StatusId = KnowledgeGroup.StatusId; this.DisplayOrder = KnowledgeGroup.DisplayOrder; this.Description = KnowledgeGroup.Description; this.Errors = KnowledgeGroup.Errors; }
private KnowledgeGroup ConvertDTOToEntity(KnowledgeGroup_KnowledgeGroupDTO KnowledgeGroup_KnowledgeGroupDTO) { KnowledgeGroup KnowledgeGroup = new KnowledgeGroup(); KnowledgeGroup.Id = KnowledgeGroup_KnowledgeGroupDTO.Id; KnowledgeGroup.Name = KnowledgeGroup_KnowledgeGroupDTO.Name; KnowledgeGroup.Code = KnowledgeGroup_KnowledgeGroupDTO.Code; KnowledgeGroup.StatusId = KnowledgeGroup_KnowledgeGroupDTO.StatusId; KnowledgeGroup.DisplayOrder = KnowledgeGroup_KnowledgeGroupDTO.DisplayOrder; KnowledgeGroup.Description = KnowledgeGroup_KnowledgeGroupDTO.Description; KnowledgeGroup.Status = KnowledgeGroup_KnowledgeGroupDTO.Status == null ? null : new Status { Id = KnowledgeGroup_KnowledgeGroupDTO.Status.Id, Code = KnowledgeGroup_KnowledgeGroupDTO.Status.Code, Name = KnowledgeGroup_KnowledgeGroupDTO.Status.Name, }; KnowledgeGroup.BaseLanguage = CurrentContext.Language; return(KnowledgeGroup); }
public async Task <bool> ValidateId(KnowledgeGroup KnowledgeGroup) { KnowledgeGroupFilter KnowledgeGroupFilter = new KnowledgeGroupFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = KnowledgeGroup.Id }, Selects = KnowledgeGroupSelect.Id }; int count = await UOW.KnowledgeGroupRepository.Count(KnowledgeGroupFilter); if (count == 0) { KnowledgeGroup.AddError(nameof(KnowledgeGroupValidator), nameof(KnowledgeGroup.Id), ErrorCode.IdNotExisted); } return(count == 1); }
public async Task <bool> Create(KnowledgeGroup KnowledgeGroup) { KnowledgeGroupDAO KnowledgeGroupDAO = new KnowledgeGroupDAO(); KnowledgeGroupDAO.Id = KnowledgeGroup.Id; KnowledgeGroupDAO.Name = KnowledgeGroup.Name; KnowledgeGroupDAO.Code = KnowledgeGroup.Code; KnowledgeGroupDAO.StatusId = KnowledgeGroup.StatusId; KnowledgeGroupDAO.DisplayOrder = KnowledgeGroup.DisplayOrder; KnowledgeGroupDAO.Description = KnowledgeGroup.Description; KnowledgeGroupDAO.CreatedAt = StaticParams.DateTimeNow; KnowledgeGroupDAO.UpdatedAt = StaticParams.DateTimeNow; DataContext.KnowledgeGroup.Add(KnowledgeGroupDAO); await DataContext.SaveChangesAsync(); KnowledgeGroup.Id = KnowledgeGroupDAO.Id; await SaveReference(KnowledgeGroup); return(true); }
public async Task <ActionResult <KnowledgeGroup_KnowledgeGroupDTO> > Get([FromBody] KnowledgeGroup_KnowledgeGroupDTO KnowledgeGroup_KnowledgeGroupDTO) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } if (!await HasPermission(KnowledgeGroup_KnowledgeGroupDTO.Id)) { return(Forbid()); } KnowledgeGroup KnowledgeGroup = await KnowledgeGroupService.Get(KnowledgeGroup_KnowledgeGroupDTO.Id); return(new KnowledgeGroup_KnowledgeGroupDTO(KnowledgeGroup)); }
public async Task <bool> Update(KnowledgeGroup KnowledgeGroup) { KnowledgeGroupDAO KnowledgeGroupDAO = DataContext.KnowledgeGroup.Where(x => x.Id == KnowledgeGroup.Id).FirstOrDefault(); if (KnowledgeGroupDAO == null) { return(false); } KnowledgeGroupDAO.Id = KnowledgeGroup.Id; KnowledgeGroupDAO.Name = KnowledgeGroup.Name; KnowledgeGroupDAO.Code = KnowledgeGroup.Code; KnowledgeGroupDAO.StatusId = KnowledgeGroup.StatusId; KnowledgeGroupDAO.DisplayOrder = KnowledgeGroup.DisplayOrder; KnowledgeGroupDAO.Description = KnowledgeGroup.Description; KnowledgeGroupDAO.UpdatedAt = StaticParams.DateTimeNow; await DataContext.SaveChangesAsync(); await SaveReference(KnowledgeGroup); return(true); }
public async Task <KnowledgeGroup> Update(KnowledgeGroup KnowledgeGroup) { if (!await KnowledgeGroupValidator.Update(KnowledgeGroup)) { return(KnowledgeGroup); } try { var oldData = await UOW.KnowledgeGroupRepository.Get(KnowledgeGroup.Id); await UOW.Begin(); await UOW.KnowledgeGroupRepository.Update(KnowledgeGroup); await UOW.Commit(); KnowledgeGroup = await UOW.KnowledgeGroupRepository.Get(KnowledgeGroup.Id); await Logging.CreateAuditLog(KnowledgeGroup, oldData, nameof(KnowledgeGroupService)); return(KnowledgeGroup); } catch (Exception ex) { await UOW.Rollback(); if (ex.InnerException == null) { await Logging.CreateSystemLog(ex, nameof(KnowledgeGroupService)); throw new MessageException(ex); } else { await Logging.CreateSystemLog(ex.InnerException, nameof(KnowledgeGroupService)); throw new MessageException(ex.InnerException); } } }
public async Task <bool> ValidateCode(KnowledgeGroup KnowledgeGroup) { if (string.IsNullOrWhiteSpace(KnowledgeGroup.Code)) { KnowledgeGroup.AddError(nameof(KnowledgeGroupValidator), nameof(KnowledgeGroup.Code), ErrorCode.CodeEmpty); } else { var Code = KnowledgeGroup.Code; if (KnowledgeGroup.Code.Contains(" ") || !FilterExtension.ChangeToEnglishChar(Code).Equals(KnowledgeGroup.Code)) { KnowledgeGroup.AddError(nameof(KnowledgeGroupValidator), nameof(KnowledgeGroup.Code), ErrorCode.CodeHasSpecialCharacter); } KnowledgeGroupFilter KnowledgeGroupFilter = new KnowledgeGroupFilter { Skip = 0, Take = 10, Id = new IdFilter { NotEqual = KnowledgeGroup.Id }, Code = new StringFilter { Equal = KnowledgeGroup.Code }, Selects = KnowledgeGroupSelect.Code }; int count = await UOW.KnowledgeGroupRepository.Count(KnowledgeGroupFilter); if (count != 0) { KnowledgeGroup.AddError(nameof(KnowledgeGroupValidator), nameof(KnowledgeGroup.Code), ErrorCode.CodeExisted); } } return(KnowledgeGroup.IsValidated); }
public async Task <ActionResult> Import(IFormFile file) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } AppUserFilter CreatorFilter = new AppUserFilter { Skip = 0, Take = int.MaxValue, Selects = AppUserSelect.ALL }; List <AppUser> Creators = await AppUserService.List(CreatorFilter); KnowledgeGroupFilter GroupFilter = new KnowledgeGroupFilter { Skip = 0, Take = int.MaxValue, Selects = KnowledgeGroupSelect.ALL }; List <KnowledgeGroup> Groups = await KnowledgeGroupService.List(GroupFilter); StatusFilter StatusFilter = new StatusFilter { Skip = 0, Take = int.MaxValue, Selects = StatusSelect.ALL }; List <Status> Statuses = await StatusService.List(StatusFilter); List <KnowledgeArticle> KnowledgeArticles = new List <KnowledgeArticle>(); using (ExcelPackage excelPackage = new ExcelPackage(file.OpenReadStream())) { ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault(); if (worksheet == null) { return(Ok(KnowledgeArticles)); } int StartColumn = 1; int StartRow = 1; int IdColumn = 0 + StartColumn; int TitleColumn = 1 + StartColumn; int DetailColumn = 2 + StartColumn; int StatusIdColumn = 3 + StartColumn; int GroupIdColumn = 4 + StartColumn; int CreatorIdColumn = 5 + StartColumn; int DisplayOrderColumn = 6 + StartColumn; for (int i = StartRow; i <= worksheet.Dimension.End.Row; i++) { if (string.IsNullOrEmpty(worksheet.Cells[i + StartRow, StartColumn].Value?.ToString())) { break; } string IdValue = worksheet.Cells[i + StartRow, IdColumn].Value?.ToString(); string TitleValue = worksheet.Cells[i + StartRow, TitleColumn].Value?.ToString(); string DetailValue = worksheet.Cells[i + StartRow, DetailColumn].Value?.ToString(); string StatusIdValue = worksheet.Cells[i + StartRow, StatusIdColumn].Value?.ToString(); string GroupIdValue = worksheet.Cells[i + StartRow, GroupIdColumn].Value?.ToString(); string CreatorIdValue = worksheet.Cells[i + StartRow, CreatorIdColumn].Value?.ToString(); string DisplayOrderValue = worksheet.Cells[i + StartRow, DisplayOrderColumn].Value?.ToString(); KnowledgeArticle KnowledgeArticle = new KnowledgeArticle(); KnowledgeArticle.Title = TitleValue; KnowledgeArticle.Detail = DetailValue; KnowledgeArticle.DisplayOrder = long.TryParse(DisplayOrderValue, out long DisplayOrder) ? DisplayOrder : 0; AppUser Creator = Creators.Where(x => x.Id.ToString() == CreatorIdValue).FirstOrDefault(); KnowledgeArticle.CreatorId = Creator == null ? 0 : Creator.Id; KnowledgeArticle.Creator = Creator; KnowledgeGroup Group = Groups.Where(x => x.Id.ToString() == GroupIdValue).FirstOrDefault(); KnowledgeArticle.GroupId = Group == null ? 0 : Group.Id; KnowledgeArticle.Group = Group; Status Status = Statuses.Where(x => x.Id.ToString() == StatusIdValue).FirstOrDefault(); KnowledgeArticle.StatusId = Status == null ? 0 : Status.Id; KnowledgeArticle.Status = Status; KnowledgeArticles.Add(KnowledgeArticle); } } KnowledgeArticles = await KnowledgeArticleService.Import(KnowledgeArticles); if (KnowledgeArticles.All(x => x.IsValidated)) { return(Ok(true)); } else { List <string> Errors = new List <string>(); for (int i = 0; i < KnowledgeArticles.Count; i++) { KnowledgeArticle KnowledgeArticle = KnowledgeArticles[i]; if (!KnowledgeArticle.IsValidated) { string Error = $"Dòng {i + 2} có lỗi:"; if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.Id))) { Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.Id)]; } if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.Title))) { Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.Title)]; } if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.Detail))) { Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.Detail)]; } if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.StatusId))) { Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.StatusId)]; } if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.GroupId))) { Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.GroupId)]; } if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.CreatorId))) { Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.CreatorId)]; } if (KnowledgeArticle.Errors.ContainsKey(nameof(KnowledgeArticle.DisplayOrder))) { Error += KnowledgeArticle.Errors[nameof(KnowledgeArticle.DisplayOrder)]; } Errors.Add(Error); } } return(BadRequest(Errors)); } }
private async Task SaveReference(KnowledgeGroup KnowledgeGroup) { }
public async Task <ActionResult> Import(IFormFile file) { if (!ModelState.IsValid) { throw new BindException(ModelState); } StatusFilter StatusFilter = new StatusFilter { Skip = 0, Take = int.MaxValue, Selects = StatusSelect.ALL }; List <Status> Statuses = await StatusService.List(StatusFilter); List <KnowledgeGroup> KnowledgeGroups = new List <KnowledgeGroup>(); using (ExcelPackage excelPackage = new ExcelPackage(file.OpenReadStream())) { ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault(); if (worksheet == null) { return(Ok(KnowledgeGroups)); } int StartColumn = 1; int StartRow = 1; int IdColumn = 0 + StartColumn; int NameColumn = 1 + StartColumn; int CodeColumn = 2 + StartColumn; int StatusIdColumn = 3 + StartColumn; int DisplayOrderColumn = 4 + StartColumn; int DescriptionColumn = 5 + StartColumn; for (int i = StartRow; i <= worksheet.Dimension.End.Row; i++) { if (string.IsNullOrEmpty(worksheet.Cells[i + StartRow, StartColumn].Value?.ToString())) { break; } string IdValue = worksheet.Cells[i + StartRow, IdColumn].Value?.ToString(); string NameValue = worksheet.Cells[i + StartRow, NameColumn].Value?.ToString(); string CodeValue = worksheet.Cells[i + StartRow, CodeColumn].Value?.ToString(); string StatusIdValue = worksheet.Cells[i + StartRow, StatusIdColumn].Value?.ToString(); string DisplayOrderValue = worksheet.Cells[i + StartRow, DisplayOrderColumn].Value?.ToString(); string DescriptionValue = worksheet.Cells[i + StartRow, DescriptionColumn].Value?.ToString(); KnowledgeGroup KnowledgeGroup = new KnowledgeGroup(); KnowledgeGroup.Name = NameValue; KnowledgeGroup.Code = CodeValue; KnowledgeGroup.DisplayOrder = long.TryParse(DisplayOrderValue, out long DisplayOrder) ? DisplayOrder : 0; KnowledgeGroup.Description = DescriptionValue; Status Status = Statuses.Where(x => x.Id.ToString() == StatusIdValue).FirstOrDefault(); KnowledgeGroup.StatusId = Status == null ? 0 : Status.Id; KnowledgeGroup.Status = Status; KnowledgeGroups.Add(KnowledgeGroup); } } KnowledgeGroups = await KnowledgeGroupService.Import(KnowledgeGroups); if (KnowledgeGroups.All(x => x.IsValidated)) { return(Ok(true)); } else { List <string> Errors = new List <string>(); for (int i = 0; i < KnowledgeGroups.Count; i++) { KnowledgeGroup KnowledgeGroup = KnowledgeGroups[i]; if (!KnowledgeGroup.IsValidated) { string Error = $"Dòng {i + 2} có lỗi:"; if (KnowledgeGroup.Errors.ContainsKey(nameof(KnowledgeGroup.Id))) { Error += KnowledgeGroup.Errors[nameof(KnowledgeGroup.Id)]; } if (KnowledgeGroup.Errors.ContainsKey(nameof(KnowledgeGroup.Name))) { Error += KnowledgeGroup.Errors[nameof(KnowledgeGroup.Name)]; } if (KnowledgeGroup.Errors.ContainsKey(nameof(KnowledgeGroup.Code))) { Error += KnowledgeGroup.Errors[nameof(KnowledgeGroup.Code)]; } if (KnowledgeGroup.Errors.ContainsKey(nameof(KnowledgeGroup.StatusId))) { Error += KnowledgeGroup.Errors[nameof(KnowledgeGroup.StatusId)]; } if (KnowledgeGroup.Errors.ContainsKey(nameof(KnowledgeGroup.DisplayOrder))) { Error += KnowledgeGroup.Errors[nameof(KnowledgeGroup.DisplayOrder)]; } if (KnowledgeGroup.Errors.ContainsKey(nameof(KnowledgeGroup.Description))) { Error += KnowledgeGroup.Errors[nameof(KnowledgeGroup.Description)]; } Errors.Add(Error); } } return(BadRequest(Errors)); } }