コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }