public async Task <ActionResult <List <CallLog_EntityReferenceDTO> > > SingleListEntityReference([FromBody] CallLog_EntityReferenceFilterDTO CallLog_EntityReferenceFilterDTO) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } EntityReferenceFilter EntityReferenceFilter = new EntityReferenceFilter(); EntityReferenceFilter.Skip = 0; EntityReferenceFilter.Take = 20; EntityReferenceFilter.OrderBy = EntityReferenceOrder.Id; EntityReferenceFilter.OrderType = OrderType.ASC; EntityReferenceFilter.Selects = EntityReferenceSelect.ALL; EntityReferenceFilter.Id = CallLog_EntityReferenceFilterDTO.Id; EntityReferenceFilter.Code = CallLog_EntityReferenceFilterDTO.Code; EntityReferenceFilter.Name = CallLog_EntityReferenceFilterDTO.Name; List <EntityReference> EntityReferences = await EntityReferenceService.List(EntityReferenceFilter); List <CallLog_EntityReferenceDTO> CallLog_EntityReferenceDTOs = EntityReferences .Select(x => new CallLog_EntityReferenceDTO(x)).ToList(); return(CallLog_EntityReferenceDTOs); }
public async Task <int> Count(EntityReferenceFilter filter) { IQueryable <EntityReferenceDAO> EntityReferences = DataContext.EntityReference.AsNoTracking(); EntityReferences = DynamicFilter(EntityReferences, filter); return(await EntityReferences.CountAsync()); }
public async Task <List <EntityReference> > List(EntityReferenceFilter filter) { if (filter == null) { return(new List <EntityReference>()); } IQueryable <EntityReferenceDAO> EntityReferenceDAOs = DataContext.EntityReference.AsNoTracking(); EntityReferenceDAOs = DynamicFilter(EntityReferenceDAOs, filter); EntityReferenceDAOs = DynamicOrder(EntityReferenceDAOs, filter); List <EntityReference> EntityReferences = await DynamicSelect(EntityReferenceDAOs, filter); return(EntityReferences); }
public async Task <List <EntityReference> > List(EntityReferenceFilter EntityReferenceFilter) { try { List <EntityReference> EntityReferences = await UOW.EntityReferenceRepository.List(EntityReferenceFilter); return(EntityReferences); } catch (Exception ex) { await Logging.CreateSystemLog(ex, nameof(EntityReferenceService)); } return(null); }
public async Task <int> Count(EntityReferenceFilter EntityReferenceFilter) { try { int result = await UOW.EntityReferenceRepository.Count(EntityReferenceFilter); return(result); } catch (Exception ex) { await Logging.CreateSystemLog(ex, nameof(EntityReferenceService)); } return(0); }
public async Task <bool> ValidateId(EntityReference EntityReference) { EntityReferenceFilter EntityReferenceFilter = new EntityReferenceFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = EntityReference.Id }, Selects = EntityReferenceSelect.Id }; int count = await UOW.EntityReferenceRepository.Count(EntityReferenceFilter); if (count == 0) { EntityReference.AddError(nameof(EntityReferenceValidator), nameof(EntityReference.Id), ErrorCode.IdNotExisted); } return(count == 1); }
private IQueryable <EntityReferenceDAO> DynamicOrder(IQueryable <EntityReferenceDAO> query, EntityReferenceFilter filter) { switch (filter.OrderType) { case OrderType.ASC: switch (filter.OrderBy) { case EntityReferenceOrder.Id: query = query.OrderBy(q => q.Id); break; case EntityReferenceOrder.Code: query = query.OrderBy(q => q.Code); break; case EntityReferenceOrder.Name: query = query.OrderBy(q => q.Name); break; } break; case OrderType.DESC: switch (filter.OrderBy) { case EntityReferenceOrder.Id: query = query.OrderByDescending(q => q.Id); break; case EntityReferenceOrder.Code: query = query.OrderByDescending(q => q.Code); break; case EntityReferenceOrder.Name: query = query.OrderByDescending(q => q.Name); break; } break; } query = query.Skip(filter.Skip).Take(filter.Take); return(query); }
private IQueryable <EntityReferenceDAO> OrFilter(IQueryable <EntityReferenceDAO> query, EntityReferenceFilter filter) { if (filter.OrFilter == null || filter.OrFilter.Count == 0) { return(query); } IQueryable <EntityReferenceDAO> initQuery = query.Where(q => false); foreach (EntityReferenceFilter EntityReferenceFilter in filter.OrFilter) { IQueryable <EntityReferenceDAO> queryable = query; if (EntityReferenceFilter.Id != null && EntityReferenceFilter.Id.HasValue) { queryable = queryable.Where(q => q.Id, EntityReferenceFilter.Id); } if (EntityReferenceFilter.Code != null && EntityReferenceFilter.Code.HasValue) { queryable = queryable.Where(q => q.Code, EntityReferenceFilter.Code); } if (EntityReferenceFilter.Name != null && EntityReferenceFilter.Name.HasValue) { queryable = queryable.Where(q => q.Name, EntityReferenceFilter.Name); } initQuery = initQuery.Union(queryable); } return(initQuery); }
private IQueryable <EntityReferenceDAO> DynamicFilter(IQueryable <EntityReferenceDAO> query, EntityReferenceFilter filter) { if (filter == null) { return(query.Where(q => false)); } if (filter.Id != null && filter.Id.HasValue) { query = query.Where(q => q.Id, filter.Id); } if (filter.Code != null && filter.Code.HasValue) { query = query.Where(q => q.Code, filter.Code); } if (filter.Name != null && filter.Name.HasValue) { query = query.Where(q => q.Name, filter.Name); } query = OrFilter(query, filter); return(query); }
private async Task <List <EntityReference> > DynamicSelect(IQueryable <EntityReferenceDAO> query, EntityReferenceFilter filter) { List <EntityReference> EntityReferences = await query.Select(q => new EntityReference() { Id = filter.Selects.Contains(EntityReferenceSelect.Id) ? q.Id : default(long), Code = filter.Selects.Contains(EntityReferenceSelect.Code) ? q.Code : default(string), Name = filter.Selects.Contains(EntityReferenceSelect.Name) ? q.Name : default(string), }).ToListAsync(); return(EntityReferences); }
public async Task <ActionResult> ExportTemplate([FromBody] CallLog_CallLogFilterDTO CallLog_CallLogFilterDTO) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } MemoryStream memoryStream = new MemoryStream(); using (ExcelPackage excel = new ExcelPackage(memoryStream)) { #region CallLog var CallLogHeaders = new List <string[]>() { new string[] { "Id", "EntityReferenceId", "CallTypeId", "CallEmotionId", "AppUserId", "Title", "Content", "Phone", "CallTime", "Used", } }; List <object[]> CallLogData = new List <object[]>(); excel.GenerateWorksheet("CallLog", CallLogHeaders, CallLogData); #endregion #region AppUser var AppUserFilter = new AppUserFilter(); AppUserFilter.Selects = AppUserSelect.ALL; AppUserFilter.OrderBy = AppUserOrder.Id; AppUserFilter.OrderType = OrderType.ASC; AppUserFilter.Skip = 0; AppUserFilter.Take = int.MaxValue; List <AppUser> AppUsers = await AppUserService.List(AppUserFilter); var AppUserHeaders = new List <string[]>() { new string[] { "Id", "Username", "DisplayName", "Address", "Email", "Phone", "SexId", "Birthday", "Avatar", "PositionId", "Department", "OrganizationId", "ProvinceId", "Longitude", "Latitude", "StatusId", } }; List <object[]> AppUserData = new List <object[]>(); for (int i = 0; i < AppUsers.Count; i++) { var AppUser = AppUsers[i]; AppUserData.Add(new Object[] { AppUser.Id, AppUser.Username, AppUser.DisplayName, AppUser.Address, AppUser.Email, AppUser.Phone, AppUser.SexId, AppUser.Birthday, AppUser.Avatar, AppUser.PositionId, AppUser.Department, AppUser.OrganizationId, AppUser.ProvinceId, AppUser.Longitude, AppUser.Latitude, AppUser.StatusId, }); } excel.GenerateWorksheet("AppUser", AppUserHeaders, AppUserData); #endregion #region EntityReference var EntityReferenceFilter = new EntityReferenceFilter(); EntityReferenceFilter.Selects = EntityReferenceSelect.ALL; EntityReferenceFilter.OrderBy = EntityReferenceOrder.Id; EntityReferenceFilter.OrderType = OrderType.ASC; EntityReferenceFilter.Skip = 0; EntityReferenceFilter.Take = int.MaxValue; List <EntityReference> EntityReferences = await EntityReferenceService.List(EntityReferenceFilter); var EntityReferenceHeaders = new List <string[]>() { new string[] { "Id", "Code", "Name", } }; List <object[]> EntityReferenceData = new List <object[]>(); for (int i = 0; i < EntityReferences.Count; i++) { var EntityReference = EntityReferences[i]; EntityReferenceData.Add(new Object[] { EntityReference.Id, EntityReference.Code, EntityReference.Name, }); } excel.GenerateWorksheet("EntityReference", EntityReferenceHeaders, EntityReferenceData); #endregion #region CallType var CallTypeFilter = new CallTypeFilter(); CallTypeFilter.Selects = CallTypeSelect.ALL; CallTypeFilter.OrderBy = CallTypeOrder.Id; CallTypeFilter.OrderType = OrderType.ASC; CallTypeFilter.Skip = 0; CallTypeFilter.Take = int.MaxValue; List <CallType> CallTypes = await CallTypeService.List(CallTypeFilter); var CallTypeHeaders = new List <string[]>() { new string[] { "Id", "Code", "Name", "ColorCode", "StatusId", "Used", } }; List <object[]> CallTypeData = new List <object[]>(); for (int i = 0; i < CallTypes.Count; i++) { var CallType = CallTypes[i]; CallTypeData.Add(new Object[] { CallType.Id, CallType.Code, CallType.Name, CallType.ColorCode, CallType.StatusId, CallType.Used, }); } excel.GenerateWorksheet("CallType", CallTypeHeaders, CallTypeData); #endregion #region CallEmotion var CallEmotionFilter = new CallEmotionFilter(); CallEmotionFilter.Selects = CallEmotionSelect.ALL; CallEmotionFilter.OrderBy = CallEmotionOrder.Id; CallEmotionFilter.OrderType = OrderType.ASC; CallEmotionFilter.Skip = 0; CallEmotionFilter.Take = int.MaxValue; List <CallEmotion> CallEmotions = await CallEmotionService.List(CallEmotionFilter); var CallEmotionHeaders = new List <string[]>() { new string[] { "Id", "Name", "Code", "StatusId", "DisplayOrder", "Description", } }; List <object[]> CallEmotionData = new List <object[]>(); for (int i = 0; i < CallEmotions.Count; i++) { var CallEmotion = CallEmotions[i]; CallEmotionData.Add(new Object[] { CallEmotion.Id, CallEmotion.Name, CallEmotion.Code, CallEmotion.StatusId, CallEmotion.Description, }); } excel.GenerateWorksheet("CallEmotion", CallEmotionHeaders, CallEmotionData); #endregion excel.Save(); } return(File(memoryStream.ToArray(), "application/octet-stream", "CallLog.xlsx")); }
public async Task <ActionResult> Import(IFormFile file) { if (UnAuthorization) { return(Forbid()); } if (!ModelState.IsValid) { throw new BindException(ModelState); } AppUserFilter AppUserFilter = new AppUserFilter { Skip = 0, Take = int.MaxValue, Selects = AppUserSelect.ALL }; List <AppUser> AppUsers = await AppUserService.List(AppUserFilter); EntityReferenceFilter EntityReferenceFilter = new EntityReferenceFilter { Skip = 0, Take = int.MaxValue, Selects = EntityReferenceSelect.ALL }; List <EntityReference> EntityReferences = await EntityReferenceService.List(EntityReferenceFilter); CallTypeFilter CallTypeFilter = new CallTypeFilter { Skip = 0, Take = int.MaxValue, Selects = CallTypeSelect.ALL }; List <CallType> CallTypes = await CallTypeService.List(CallTypeFilter); CallEmotionFilter CallEmotionFilter = new CallEmotionFilter { Skip = 0, Take = int.MaxValue, Selects = CallEmotionSelect.ALL }; List <CallEmotion> CallEmotions = await CallEmotionService.List(CallEmotionFilter); List <CallLog> CallLogs = new List <CallLog>(); using (ExcelPackage excelPackage = new ExcelPackage(file.OpenReadStream())) { ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault(); if (worksheet == null) { return(Ok(CallLogs)); } int StartColumn = 1; int StartRow = 1; int IdColumn = 0 + StartColumn; int EntityReferenceIdColumn = 1 + StartColumn; int CallTypeIdColumn = 2 + StartColumn; int CallEmotionIdColumn = 3 + StartColumn; int AppUserIdColumn = 4 + StartColumn; int TitleColumn = 5 + StartColumn; int ContentColumn = 6 + StartColumn; int PhoneColumn = 7 + StartColumn; int CallTimeColumn = 8 + StartColumn; int UsedColumn = 12 + 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 EntityReferenceIdValue = worksheet.Cells[i + StartRow, EntityReferenceIdColumn].Value?.ToString(); string CallTypeIdValue = worksheet.Cells[i + StartRow, CallTypeIdColumn].Value?.ToString(); string CallEmotionIdValue = worksheet.Cells[i + StartRow, CallEmotionIdColumn].Value?.ToString(); string AppUserIdValue = worksheet.Cells[i + StartRow, AppUserIdColumn].Value?.ToString(); string TitleValue = worksheet.Cells[i + StartRow, TitleColumn].Value?.ToString(); string ContentValue = worksheet.Cells[i + StartRow, ContentColumn].Value?.ToString(); string PhoneValue = worksheet.Cells[i + StartRow, PhoneColumn].Value?.ToString(); string CallTimeValue = worksheet.Cells[i + StartRow, CallTimeColumn].Value?.ToString(); string UsedValue = worksheet.Cells[i + StartRow, UsedColumn].Value?.ToString(); CallLog CallLog = new CallLog(); CallLog.Title = TitleValue; CallLog.Content = ContentValue; CallLog.Phone = PhoneValue; CallLog.CallTime = DateTime.TryParse(CallTimeValue, out DateTime CallTime) ? CallTime : DateTime.Now; AppUser AppUser = AppUsers.Where(x => x.Id.ToString() == AppUserIdValue).FirstOrDefault(); CallLog.AppUserId = AppUser == null ? 0 : AppUser.Id; CallLog.AppUser = AppUser; EntityReference EntityReference = EntityReferences.Where(x => x.Id.ToString() == EntityReferenceIdValue).FirstOrDefault(); CallLog.EntityReferenceId = EntityReference == null ? 0 : EntityReference.Id; CallLog.EntityReference = EntityReference; CallType CallType = CallTypes.Where(x => x.Id.ToString() == CallTypeIdValue).FirstOrDefault(); CallLog.CallTypeId = CallType == null ? 0 : CallType.Id; CallLog.CallType = CallType; CallEmotion CallEmotion = CallEmotions.Where(x => x.Id.ToString() == CallEmotionIdValue).FirstOrDefault(); CallLog.CallEmotionId = CallEmotion == null ? 0 : CallEmotion.Id; CallLog.CallEmotion = CallEmotion; CallLogs.Add(CallLog); } } CallLogs = await CallLogService.Import(CallLogs); if (CallLogs.All(x => x.IsValidated)) { return(Ok(true)); } else { List <string> Errors = new List <string>(); for (int i = 0; i < CallLogs.Count; i++) { CallLog CallLog = CallLogs[i]; if (!CallLog.IsValidated) { string Error = $"Dòng {i + 2} có lỗi:"; if (CallLog.Errors.ContainsKey(nameof(CallLog.Id))) { Error += CallLog.Errors[nameof(CallLog.Id)]; } if (CallLog.Errors.ContainsKey(nameof(CallLog.EntityReferenceId))) { Error += CallLog.Errors[nameof(CallLog.EntityReferenceId)]; } if (CallLog.Errors.ContainsKey(nameof(CallLog.CallTypeId))) { Error += CallLog.Errors[nameof(CallLog.CallTypeId)]; } if (CallLog.Errors.ContainsKey(nameof(CallLog.CallEmotionId))) { Error += CallLog.Errors[nameof(CallLog.CallEmotionId)]; } if (CallLog.Errors.ContainsKey(nameof(CallLog.AppUserId))) { Error += CallLog.Errors[nameof(CallLog.AppUserId)]; } if (CallLog.Errors.ContainsKey(nameof(CallLog.Title))) { Error += CallLog.Errors[nameof(CallLog.Title)]; } if (CallLog.Errors.ContainsKey(nameof(CallLog.Content))) { Error += CallLog.Errors[nameof(CallLog.Content)]; } if (CallLog.Errors.ContainsKey(nameof(CallLog.Phone))) { Error += CallLog.Errors[nameof(CallLog.Phone)]; } if (CallLog.Errors.ContainsKey(nameof(CallLog.CallTime))) { Error += CallLog.Errors[nameof(CallLog.CallTime)]; } Errors.Add(Error); } } return(BadRequest(Errors)); } }