public async Task <bool> Delete(TicketIssueLevel TicketIssueLevel) { if (await ValidateId(TicketIssueLevel)) { } return(TicketIssueLevel.IsValidated); }
public async Task <ActionResult <TicketIssueLevel_TicketIssueLevelDTO> > Delete([FromBody] TicketIssueLevel_TicketIssueLevelDTO TicketIssueLevel_TicketIssueLevelDTO) { if (!ModelState.IsValid) { throw new BindException(ModelState); } if (!await HasPermission(TicketIssueLevel_TicketIssueLevelDTO.Id)) { return(Forbid()); } TicketIssueLevel TicketIssueLevel = ConvertDTOToEntity(TicketIssueLevel_TicketIssueLevelDTO); TicketIssueLevel = await TicketIssueLevelService.Delete(TicketIssueLevel); TicketIssueLevel_TicketIssueLevelDTO = new TicketIssueLevel_TicketIssueLevelDTO(TicketIssueLevel); if (TicketIssueLevel.IsValidated) { return(TicketIssueLevel_TicketIssueLevelDTO); } else { return(BadRequest(TicketIssueLevel_TicketIssueLevelDTO)); } }
public async Task <bool> ValidateSLAPolicy(TicketIssueLevel TicketIssueLevel) { if (TicketIssueLevel.SLAPolicies != null && TicketIssueLevel.SLAPolicies.Any()) { foreach (var SLAPolicy in TicketIssueLevel.SLAPolicies) { if (SLAPolicy.FirstResponseTime == null) { SLAPolicy.AddError(nameof(TicketIssueLevelValidator), nameof(SLAPolicy.FirstResponseTime), ErrorCode.FirstResponseTimeEmpty); } if (SLAPolicy.ResolveTime == null || SLAPolicy.ResolveTime <= 0) { SLAPolicy.AddError(nameof(TicketIssueLevelValidator), nameof(SLAPolicy.ResolveTime), ErrorCode.ResolveTimeEmpty); } else { if (ConvertSLATimeToMenute(SLAPolicy.ResolveTime.Value, SLAPolicy.ResolveUnit) < ConvertSLATimeToMenute(SLAPolicy.FirstResponseTime.Value, SLAPolicy.FirstResponseUnit)) { SLAPolicy.AddError(nameof(TicketIssueLevelValidator), nameof(SLAPolicy.ResolveTime), ErrorCode.ResolveTimeWrong); } } } } return(TicketIssueLevel.IsValidated); }
public async Task <bool> ValidateTicketGroup(TicketIssueLevel TicketIssueLevel) { if (TicketIssueLevel.TicketGroup == null) { TicketIssueLevel.AddError(nameof(TicketIssueLevelValidator), nameof(TicketIssueLevel.TicketGroup), ErrorCode.TicketGroupEmpty); } return(TicketIssueLevel.IsValidated); }
public async Task <bool> ValidateStatus(TicketIssueLevel TicketIssueLevel) { if (StatusEnum.ACTIVE.Id != TicketIssueLevel.StatusId && StatusEnum.INACTIVE.Id != TicketIssueLevel.StatusId) { TicketIssueLevel.AddError(nameof(TicketIssueLevelValidator), nameof(TicketIssueLevel.Status), ErrorCode.StatusNotExisted); } return(TicketIssueLevel.IsValidated); }
public async Task <bool> Create(TicketIssueLevel TicketIssueLevel) { await ValidateName(TicketIssueLevel); await ValidateSLAPolicy(TicketIssueLevel); await ValidateStatus(TicketIssueLevel); await ValidateTicketGroup(TicketIssueLevel); return(TicketIssueLevel.IsValidated); }
public async Task <bool> ValidateSLA(TicketIssueLevel TicketIssueLevel) { if (TicketIssueLevel.SLA <= 0) { TicketIssueLevel.AddError(nameof(TicketIssueLevelValidator), nameof(TicketIssueLevel.SLA), ErrorCode.SLAEmpty); } return(TicketIssueLevel.IsValidated); }
public async Task <TicketIssueLevel> Get(long Id) { TicketIssueLevel TicketIssueLevel = await UOW.TicketIssueLevelRepository.Get(Id); if (TicketIssueLevel == null) { return(null); } return(TicketIssueLevel); }
public async Task <bool> ValidateName(TicketIssueLevel TicketIssueLevel) { if (string.IsNullOrWhiteSpace(TicketIssueLevel.Name)) { TicketIssueLevel.AddError(nameof(TicketIssueLevelValidator), nameof(TicketIssueLevel.Name), ErrorCode.NameEmpty); } else if (TicketIssueLevel.Name.Length > 255) { TicketIssueLevel.AddError(nameof(TicketIssueLevelValidator), nameof(TicketIssueLevel.Name), ErrorCode.NameOverLength); } return(TicketIssueLevel.IsValidated); }
public async Task <ActionResult <TicketIssueLevel_TicketIssueLevelDTO> > Get([FromBody] TicketIssueLevel_TicketIssueLevelDTO TicketIssueLevel_TicketIssueLevelDTO) { if (!ModelState.IsValid) { throw new BindException(ModelState); } if (!await HasPermission(TicketIssueLevel_TicketIssueLevelDTO.Id)) { return(Forbid()); } TicketIssueLevel TicketIssueLevel = await TicketIssueLevelService.Get(TicketIssueLevel_TicketIssueLevelDTO.Id); return(new TicketIssueLevel_TicketIssueLevelDTO(TicketIssueLevel)); }
public Customer_TicketIssueLevelDTO(TicketIssueLevel TicketIssueLevel) { this.Id = TicketIssueLevel.Id; this.Name = TicketIssueLevel.Name; this.OrderNumber = TicketIssueLevel.OrderNumber; this.TicketGroupId = TicketIssueLevel.TicketGroupId; this.StatusId = TicketIssueLevel.StatusId; this.SLA = TicketIssueLevel.SLA; this.Used = TicketIssueLevel.Used; this.Errors = TicketIssueLevel.Errors; }
public async Task <bool> ValidateId(TicketIssueLevel TicketIssueLevel) { TicketIssueLevelFilter TicketIssueLevelFilter = new TicketIssueLevelFilter { Skip = 0, Take = 10, Id = new IdFilter { Equal = TicketIssueLevel.Id }, Selects = TicketIssueLevelSelect.Id }; int count = await UOW.TicketIssueLevelRepository.Count(TicketIssueLevelFilter); if (count == 0) { TicketIssueLevel.AddError(nameof(TicketIssueLevelValidator), nameof(TicketIssueLevel.Id), ErrorCode.IdNotExisted); } return(count == 1); }
public Ticket_TicketIssueLevelDTO(TicketIssueLevel TicketIssueLevel) { this.Id = TicketIssueLevel.Id; this.Name = TicketIssueLevel.Name; this.OrderNumber = TicketIssueLevel.OrderNumber; this.TicketGroupId = TicketIssueLevel.TicketGroupId; this.StatusId = TicketIssueLevel.StatusId; this.SLA = TicketIssueLevel.SLA; this.Used = TicketIssueLevel.Used; this.TicketGroup = TicketIssueLevel.TicketGroup == null ? null : new Ticket_TicketGroupDTO(TicketIssueLevel.TicketGroup); this.Errors = TicketIssueLevel.Errors; }
public TicketIssueLevel_TicketIssueLevelDTO(TicketIssueLevel TicketIssueLevel) { this.Id = TicketIssueLevel.Id; this.Name = TicketIssueLevel.Name; this.OrderNumber = TicketIssueLevel.OrderNumber; this.TicketTypeId = TicketIssueLevel.TicketGroupId; this.TicketGroupId = TicketIssueLevel.TicketGroupId; this.StatusId = TicketIssueLevel.StatusId; this.SLA = TicketIssueLevel.SLA; this.Used = TicketIssueLevel.Used; this.Status = TicketIssueLevel.Status == null ? null : new TicketIssueLevel_StatusDTO(TicketIssueLevel.Status); this.TicketGroup = TicketIssueLevel.TicketGroup == null ? null : new TicketIssueLevel_TicketGroupDTO(TicketIssueLevel.TicketGroup); this.CreatedAt = TicketIssueLevel.CreatedAt; this.UpdatedAt = TicketIssueLevel.UpdatedAt; this.Errors = TicketIssueLevel.Errors; this.SLAPolicies = TicketIssueLevel.SLAPolicies?.Select(x => new TicketIssueLevel_SLAPolicyDTO(x)).ToList(); this.SLAAlerts = TicketIssueLevel.SLAAlerts?.Select(x => new TicketIssueLevel_SLAAlertDTO(x)).ToList(); this.SLAAlertFRTs = TicketIssueLevel.SLAAlertFRTs?.Select(x => new TicketIssueLevel_SLAAlertFRTDTO(x)).ToList(); this.SLAEscalations = TicketIssueLevel.SLAEscalations?.Select(x => new TicketIssueLevel_SLAEscalationDTO(x)).ToList(); this.SLAEscalationFRTs = TicketIssueLevel.SLAEscalationFRTs?.Select(x => new TicketIssueLevel_SLAEscalationFRTDTO(x)).ToList(); }
public async Task <TicketIssueLevel> Update(TicketIssueLevel TicketIssueLevel) { if (!await TicketIssueLevelValidator.Update(TicketIssueLevel)) { return(TicketIssueLevel); } try { var oldData = await UOW.TicketIssueLevelRepository.Get(TicketIssueLevel.Id); await UOW.Begin(); await UOW.TicketIssueLevelRepository.Update(TicketIssueLevel); await UOW.Commit(); TicketIssueLevel = await UOW.TicketIssueLevelRepository.Get(TicketIssueLevel.Id); await Logging.CreateAuditLog(TicketIssueLevel, oldData, nameof(TicketIssueLevelService)); return(TicketIssueLevel); } catch (Exception ex) { await UOW.Rollback(); if (ex.InnerException == null) { await Logging.CreateSystemLog(ex, nameof(TicketIssueLevelService)); throw new MessageException(ex); } else { await Logging.CreateSystemLog(ex.InnerException, nameof(TicketIssueLevelService)); throw new MessageException(ex.InnerException); } } }
public async Task <TicketIssueLevel> Create(TicketIssueLevel TicketIssueLevel) { if (!await TicketIssueLevelValidator.Create(TicketIssueLevel)) { return(TicketIssueLevel); } try { TicketIssueLevelFilter TicketIssueLevelFilter = new TicketIssueLevelFilter { Take = 1, Selects = TicketIssueLevelSelect.ALL, OrderBy = TicketIssueLevelOrder.OrderNumber, OrderType = OrderType.DESC }; await UOW.Begin(); if (TicketIssueLevel.OrderNumber == 0) { List <TicketIssueLevel> TicketIssueLevels = await UOW.TicketIssueLevelRepository.List(TicketIssueLevelFilter); TicketIssueLevel.OrderNumber = TicketIssueLevels.Any() ? TicketIssueLevels.Max(c => c.OrderNumber) + 1 : 1; } // Nhắc nhở xử lý List <SLAAlert> SLAAlerts = new List <SLAAlert>(); if (TicketIssueLevel.SLAAlerts != null && TicketIssueLevel.SLAAlerts.Any()) { foreach (var SLAAlert in TicketIssueLevel.SLAAlerts) { var newObj = SLAAlert; newObj.RowId = Guid.NewGuid(); if (!newObj.Time.HasValue) { newObj.Time = 15; newObj.TimeUnitId = SLATimeUnitEnum.MINUTES.Id; } SLAAlerts.Add(newObj); } } TicketIssueLevel.SLAAlerts = SLAAlerts; // Nhắc nhở phản hồi List <SLAAlertFRT> SLAAlertFRTs = new List <SLAAlertFRT>(); if (TicketIssueLevel.SLAAlertFRTs != null && TicketIssueLevel.SLAAlertFRTs.Any()) { foreach (var SLAAlertFRT in TicketIssueLevel.SLAAlertFRTs) { var newObj = SLAAlertFRT; newObj.RowId = Guid.NewGuid(); if (!newObj.Time.HasValue) { newObj.Time = 15; newObj.TimeUnitId = SLATimeUnitEnum.MINUTES.Id; } SLAAlertFRTs.Add(newObj); } } TicketIssueLevel.SLAAlertFRTs = SLAAlertFRTs; // Cảnh báo xử lý List <SLAEscalation> SLAEscalations = new List <SLAEscalation>(); if (TicketIssueLevel.SLAEscalations != null && TicketIssueLevel.SLAEscalations.Any()) { foreach (var SLAEscalation in TicketIssueLevel.SLAEscalations) { var newObj = SLAEscalation; newObj.RowId = Guid.NewGuid(); if (!newObj.Time.HasValue) { newObj.Time = 15; newObj.TimeUnitId = SLATimeUnitEnum.MINUTES.Id; } SLAEscalations.Add(newObj); } } TicketIssueLevel.SLAEscalations = SLAEscalations; // Cảnh báo phản hồi List <SLAEscalationFRT> SLAEscalationFRTs = new List <SLAEscalationFRT>(); if (TicketIssueLevel.SLAEscalationFRTs != null && TicketIssueLevel.SLAEscalationFRTs.Any()) { foreach (var SLAEscalationFRT in TicketIssueLevel.SLAEscalationFRTs) { var newObj = SLAEscalationFRT; newObj.RowId = Guid.NewGuid(); if (!newObj.Time.HasValue) { newObj.Time = 15; newObj.TimeUnitId = SLATimeUnitEnum.MINUTES.Id; } SLAEscalationFRTs.Add(newObj); } } TicketIssueLevel.SLAEscalationFRTs = SLAEscalationFRTs; await UOW.TicketIssueLevelRepository.Create(TicketIssueLevel); await UOW.Commit(); TicketIssueLevel = await UOW.TicketIssueLevelRepository.Get(TicketIssueLevel.Id); await Logging.CreateAuditLog(TicketIssueLevel, new { }, nameof(TicketIssueLevelService)); return(TicketIssueLevel); } catch (Exception ex) { if (ex.InnerException == null) { await Logging.CreateSystemLog(ex, nameof(TicketIssueLevelService)); throw new MessageException(ex); } else { await Logging.CreateSystemLog(ex.InnerException, nameof(TicketIssueLevelService)); throw new MessageException(ex.InnerException); } } }
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); TicketGroupFilter TicketGroupFilter = new TicketGroupFilter { Skip = 0, Take = int.MaxValue, Selects = TicketGroupSelect.ALL }; List <TicketGroup> TicketGroups = await TicketGroupService.List(TicketGroupFilter); List <TicketIssueLevel> TicketIssueLevels = new List <TicketIssueLevel>(); using (ExcelPackage excelPackage = new ExcelPackage(file.OpenReadStream())) { ExcelWorksheet worksheet = excelPackage.Workbook.Worksheets.FirstOrDefault(); if (worksheet == null) { return(Ok(TicketIssueLevels)); } int StartColumn = 1; int StartRow = 1; int IdColumn = 0 + StartColumn; int NameColumn = 1 + StartColumn; int OrderNumberColumn = 2 + StartColumn; int TicketGroupIdColumn = 3 + StartColumn; int StatusIdColumn = 4 + StartColumn; int SLAColumn = 5 + StartColumn; int UsedColumn = 9 + 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 OrderNumberValue = worksheet.Cells[i + StartRow, OrderNumberColumn].Value?.ToString(); string TicketGroupIdValue = worksheet.Cells[i + StartRow, TicketGroupIdColumn].Value?.ToString(); string StatusIdValue = worksheet.Cells[i + StartRow, StatusIdColumn].Value?.ToString(); string SLAValue = worksheet.Cells[i + StartRow, SLAColumn].Value?.ToString(); string UsedValue = worksheet.Cells[i + StartRow, UsedColumn].Value?.ToString(); TicketIssueLevel TicketIssueLevel = new TicketIssueLevel(); TicketIssueLevel.Name = NameValue; TicketIssueLevel.OrderNumber = long.TryParse(OrderNumberValue, out long OrderNumber) ? OrderNumber : 0; TicketIssueLevel.SLA = long.TryParse(SLAValue, out long SLA) ? SLA : 0; Status Status = Statuses.Where(x => x.Id.ToString() == StatusIdValue).FirstOrDefault(); TicketIssueLevel.StatusId = Status == null ? 0 : Status.Id; TicketIssueLevel.Status = Status; TicketGroup TicketGroup = TicketGroups.Where(x => x.Id.ToString() == TicketGroupIdValue).FirstOrDefault(); TicketIssueLevel.TicketGroupId = TicketGroup == null ? 0 : TicketGroup.Id; TicketIssueLevel.TicketGroup = TicketGroup; TicketIssueLevels.Add(TicketIssueLevel); } } TicketIssueLevels = await TicketIssueLevelService.Import(TicketIssueLevels); if (TicketIssueLevels.All(x => x.IsValidated)) { return(Ok(true)); } else { List <string> Errors = new List <string>(); for (int i = 0; i < TicketIssueLevels.Count; i++) { TicketIssueLevel TicketIssueLevel = TicketIssueLevels[i]; if (!TicketIssueLevel.IsValidated) { string Error = $"Dòng {i + 2} có lỗi:"; if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.Id))) { Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.Id)]; } if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.Name))) { Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.Name)]; } if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.OrderNumber))) { Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.OrderNumber)]; } if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.TicketGroupId))) { Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.TicketGroupId)]; } if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.StatusId))) { Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.StatusId)]; } if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.SLA))) { Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.SLA)]; } if (TicketIssueLevel.Errors.ContainsKey(nameof(TicketIssueLevel.Used))) { Error += TicketIssueLevel.Errors[nameof(TicketIssueLevel.Used)]; } Errors.Add(Error); } } return(BadRequest(Errors)); } }
private TicketIssueLevel ConvertDTOToEntity(TicketIssueLevel_TicketIssueLevelDTO TicketIssueLevel_TicketIssueLevelDTO) { TicketIssueLevel TicketIssueLevel = new TicketIssueLevel(); TicketIssueLevel.Id = TicketIssueLevel_TicketIssueLevelDTO.Id; TicketIssueLevel.Name = TicketIssueLevel_TicketIssueLevelDTO.Name; TicketIssueLevel.OrderNumber = TicketIssueLevel_TicketIssueLevelDTO.OrderNumber; TicketIssueLevel.TicketGroupId = TicketIssueLevel_TicketIssueLevelDTO.TicketGroupId; TicketIssueLevel.TicketTypeId = TicketIssueLevel_TicketIssueLevelDTO.TicketTypeId; TicketIssueLevel.StatusId = TicketIssueLevel_TicketIssueLevelDTO.StatusId; TicketIssueLevel.SLA = TicketIssueLevel_TicketIssueLevelDTO.SLA; TicketIssueLevel.Used = TicketIssueLevel_TicketIssueLevelDTO.Used; TicketIssueLevel.Status = TicketIssueLevel_TicketIssueLevelDTO.Status == null ? null : new Status { Id = TicketIssueLevel_TicketIssueLevelDTO.Status.Id, Code = TicketIssueLevel_TicketIssueLevelDTO.Status.Code, Name = TicketIssueLevel_TicketIssueLevelDTO.Status.Name, }; TicketIssueLevel.TicketGroup = TicketIssueLevel_TicketIssueLevelDTO.TicketGroup == null ? null : new TicketGroup { Id = TicketIssueLevel_TicketIssueLevelDTO.TicketGroup.Id, Name = TicketIssueLevel_TicketIssueLevelDTO.TicketGroup.Name, OrderNumber = TicketIssueLevel_TicketIssueLevelDTO.TicketGroup.OrderNumber, StatusId = TicketIssueLevel_TicketIssueLevelDTO.TicketGroup.StatusId, TicketTypeId = TicketIssueLevel_TicketIssueLevelDTO.TicketGroup.TicketTypeId, Used = TicketIssueLevel_TicketIssueLevelDTO.TicketGroup.Used, }; TicketIssueLevel.SLAPolicies = TicketIssueLevel_TicketIssueLevelDTO.SLAPolicies?.Select(p => new SLAPolicy { Id = p.Id, TicketIssueLevelId = p.TicketIssueLevelId, TicketPriorityId = p.TicketPriorityId, FirstResponseTime = p.FirstResponseTime, FirstResponseUnitId = p.FirstResponseUnitId, FirstResponseUnit = p.FirstResponseUnit == null ? null : new SLATimeUnit { Id = p.FirstResponseUnit.Id, Code = p.FirstResponseUnit.Code, Name = p.FirstResponseUnit.Name }, ResolveTime = p.ResolveTime, ResolveUnitId = p.ResolveUnitId, ResolveUnit = p.ResolveUnit == null ? null : new SLATimeUnit { Id = p.ResolveUnit.Id, Code = p.ResolveUnit.Code, Name = p.ResolveUnit.Name }, IsAlert = p.IsAlert, IsAlertFRT = p.IsAlertFRT, IsEscalation = p.IsEscalation, IsEscalationFRT = p.IsEscalationFRT, }).ToList(); TicketIssueLevel.SLAAlerts = TicketIssueLevel_TicketIssueLevelDTO.SLAAlerts?.Select(p => new SLAAlert { Id = p.Id, TicketIssueLevelId = p.TicketIssueLevelId, IsNotification = p.IsNotification, IsMail = p.IsMail, IsSMS = p.IsSMS, Time = p.Time, TimeUnitId = p.TimeUnitId, IsAssignedToUser = p.IsAssignedToUser, IsAssignedToGroup = p.IsAssignedToGroup, SmsTemplateId = p.SmsTemplateId, MailTemplateId = p.MailTemplateId, SLAAlertMails = p.SLAAlertMails?.Select(x => new SLAAlertMail { Id = x.Id, SLAAlertId = x.SLAAlertId, Mail = x.Mail }).ToList(), SLAAlertPhones = p.SLAAlertPhones?.Select(x => new SLAAlertPhone { Id = x.Id, SLAAlertId = x.SLAAlertId, Phone = x.Phone }).ToList(), SLAAlertUsers = p.SLAAlertUsers?.Select(x => new SLAAlertUser { Id = x.Id, SLAAlertId = x.SLAAlertId, AppUserId = x.AppUserId }).ToList() }).ToList(); TicketIssueLevel.SLAAlertFRTs = TicketIssueLevel_TicketIssueLevelDTO.SLAAlertFRTs?.Select(p => new SLAAlertFRT { Id = p.Id, TicketIssueLevelId = p.TicketIssueLevelId, IsNotification = p.IsNotification, IsMail = p.IsMail, IsSMS = p.IsSMS, Time = p.Time, TimeUnitId = p.TimeUnitId, IsAssignedToUser = p.IsAssignedToUser, IsAssignedToGroup = p.IsAssignedToGroup, SmsTemplateId = p.SmsTemplateId, MailTemplateId = p.MailTemplateId, SLAAlertFRTMails = p.SLAAlertFRTMails?.Select(x => new SLAAlertFRTMail { Id = x.Id, SLAAlertFRTId = x.SLAAlertFRTId, Mail = x.Mail }).ToList(), SLAAlertFRTPhones = p.SLAAlertFRTPhones?.Select(x => new SLAAlertFRTPhone { Id = x.Id, SLAAlertFRTId = x.SLAAlertFRTId, Phone = x.Phone }).ToList(), SLAAlertFRTUsers = p.SLAAlertFRTUsers?.Select(x => new SLAAlertFRTUser { Id = x.Id, SLAAlertFRTId = x.SLAAlertFRTId, AppUserId = x.AppUserId }).ToList() }).ToList(); TicketIssueLevel.SLAEscalations = TicketIssueLevel_TicketIssueLevelDTO.SLAEscalations?.Select(p => new SLAEscalation { Id = p.Id, TicketIssueLevelId = p.TicketIssueLevelId, IsNotification = p.IsNotification, IsMail = p.IsMail, IsSMS = p.IsSMS, Time = p.Time, TimeUnitId = p.TimeUnitId, IsAssignedToUser = p.IsAssignedToUser, IsAssignedToGroup = p.IsAssignedToGroup, SmsTemplateId = p.SmsTemplateId, MailTemplateId = p.MailTemplateId, SLAEscalationMails = p.SLAEscalationMails?.Select(x => new SLAEscalationMail { Id = x.Id, SLAEscalationId = x.SLAEscalationId, Mail = x.Mail }).ToList(), SLAEscalationPhones = p.SLAEscalationPhones?.Select(x => new SLAEscalationPhone { Id = x.Id, SLAEscalationId = x.SLAEscalationId, Phone = x.Phone }).ToList(), SLAEscalationUsers = p.SLAEscalationUsers?.Select(x => new SLAEscalationUser { Id = x.Id, SLAEscalationId = x.SLAEscalationId, AppUserId = x.AppUserId }).ToList() }).ToList(); TicketIssueLevel.SLAEscalationFRTs = TicketIssueLevel_TicketIssueLevelDTO.SLAEscalationFRTs?.Select(p => new SLAEscalationFRT { Id = p.Id, TicketIssueLevelId = p.TicketIssueLevelId, IsNotification = p.IsNotification, IsMail = p.IsMail, IsSMS = p.IsSMS, Time = p.Time, TimeUnitId = p.TimeUnitId, IsAssignedToUser = p.IsAssignedToUser, IsAssignedToGroup = p.IsAssignedToGroup, SmsTemplateId = p.SmsTemplateId, MailTemplateId = p.MailTemplateId, SLAEscalationFRTMails = p.SLAEscalationFRTMails?.Select(x => new SLAEscalationFRTMail { Id = x.Id, SLAEscalationFRTId = x.SLAEscalationFRTId, Mail = x.Mail }).ToList(), SLAEscalationFRTPhones = p.SLAEscalationFRTPhones?.Select(x => new SLAEscalationFRTPhone { Id = x.Id, SLAEscalationFRTId = x.SLAEscalationFRTId, Phone = x.Phone }).ToList(), SLAEscalationFRTUsers = p.SLAEscalationFRTUsers?.Select(x => new SLAEscalationFRTUser { Id = x.Id, SLAEscalationFRTId = x.SLAEscalationFRTId, AppUserId = x.AppUserId }).ToList() }).ToList(); TicketIssueLevel.BaseLanguage = CurrentContext.Language; return(TicketIssueLevel); }