public async Task <DependentObjectCheckResult> CheckInUseAsync(string id, EntityHeader org, EntityHeader user) { var templateCategory = await _repo.GetTemplateCategoryAsync(id); await AuthorizeAsync(templateCategory, AuthorizeResult.AuthorizeActions.Read, user, org); return(await CheckForDepenenciesAsync(templateCategory)); }
public async Task <ServiceTicketTemplate> GetServiceTicketTemplateAsync(string id, EntityHeader org, EntityHeader user) { var template = await _repo.GetServiceTicketTemplateAsync(id); if (!EntityHeader.IsNullOrEmpty(template.TemplateCategory)) { template.TemplateCategory.Value = await _templateCategoryRepo.GetTemplateCategoryAsync(template.TemplateCategory.Id); } await AuthorizeAsync(template, AuthorizeResult.AuthorizeActions.Delete, user, org); return(template); }
public async Task <ServiceTicket> GetServiceTicketAsync(string id, EntityHeader org, EntityHeader user) { Console.WriteLine("Starting getting ticket"); Console.WriteLine("====================================="); var sw = Stopwatch.StartNew(); var ticket = await _repo.GetServiceTicketAsync(id); Console.WriteLine("Loaded service ticket: " + sw.Elapsed.TotalMilliseconds); await AuthorizeAsync(ticket, AuthorizeResult.AuthorizeActions.Read, user, org); Console.WriteLine("Authorized: " + sw.Elapsed.TotalMilliseconds); var sw2 = Stopwatch.StartNew(); if (!EntityHeader.IsNullOrEmpty(ticket.DeviceRepo)) { var repo = await _repoManager.GetDeviceRepositoryWithSecretsAsync(ticket.DeviceRepo.Id, org, user); Console.WriteLine("Loaded device repo: " + sw2.Elapsed.TotalMilliseconds); sw2 = Stopwatch.StartNew(); if (!EntityHeader.IsNullOrEmpty(ticket.Device)) { ticket.Device.Value = await _deviceManager.GetDeviceByIdAsync(repo, ticket.Device.Id, org, user, true); } Console.WriteLine("Device load time: " + sw2.Elapsed.TotalMilliseconds); } var statusType = await _ticketStatusRepo.GetTicketStatusDefinitionAsync(ticket.StatusType.Id); ticket.StatusType = EntityHeader <TicketStatusDefinition> .Create(statusType); if (!EntityHeader.IsNullOrEmpty(ticket.ServiceBoard)) { ticket.ServiceBoard.Value = await _serviceBoardRepo.GetServiceBoardAsync(ticket.ServiceBoard.Id); } Console.WriteLine("Loaded board: " + sw.Elapsed.TotalMilliseconds); if (!EntityHeader.IsNullOrEmpty(ticket.Template)) { ticket.Template.Value = await _templateRepo.GetServiceTicketTemplateAsync(ticket.Template.Id); if (!EntityHeader.IsNullOrEmpty(ticket.Template.Value.TemplateCategory)) { ticket.Template.Value.TemplateCategory.Value = await _templateCategoryRepo.GetTemplateCategoryAsync(ticket.Template.Value.TemplateCategory.Id); } } Console.WriteLine("Total load time: " + sw.Elapsed.TotalMilliseconds); if (!ticket.IsViewed && !EntityHeader.IsNullOrEmpty(ticket.AssignedTo) && ticket.AssignedTo.Id == user.Id) { ticket.IsViewed = true; ticket.ViewedBy = user; ticket.ViewedDate = DateTime.UtcNow.ToJSONString(); var history = new ServiceTicketStatusHistory() { AddedBy = user, DateStamp = ticket.ViewedDate, Status = ticket.Status.Text, Note = $"Viewed by [{user.Text}]" }; ticket.History.Insert(0, history); await _repo.UpdateServiceTicketAsync(ticket); } return(ticket); }