Ejemplo n.º 1
0
        public async Task <IActionResult> CreateTicets([FromBody] CreateTicketRequest requestData)
        {
            var response = new CreateTicetsResponse {
                TicketsCreated = false
            };

            if (DatesFromMonth.DateTo(requestData) >= DateTime.Now)
            {
                response.Message = "Jeszcze nie można przetwarzać danych z tego zakresu - miesiąc musi być zakończony.";
                return(new JsonResult(response));
            }
            if (requestData == null)
            {
                response.Message = "Błędne dane zapytania";
                return(new JsonResult(response));
            }

            if (!await CheckDataAlreadyTaken(requestData))
            {
                using (var transaction = await _context.Database.BeginTransactionAsync())
                {
                    if (requestData.TicketsGroup == "import")
                    {
                        _context.TaskTickets.AddRange(TicketsGenerator.ImportTickets(requestData));
                    }
                    else if (requestData.TicketsGroup == "export")
                    {
                        _context.TaskTickets.AddRange(TicketsGenerator.ExportTickets(requestData));
                    }

                    await _context.SaveChangesAsync();

                    await transaction.CommitAsync();
                }

                response.TicketsCreated = true;
                response.Message        = "Proces rozpoczęty!";
            }
            else
            {
                response.Message = "Dane z tego okresu były już przetwarzane lub trwa ich przetarzanie";
            }
            return(new JsonResult(response));
        }
Ejemplo n.º 2
0
        public async Task <bool> CheckDataAlreadyTaken(CreateTicketRequest createTicketRequest)
        {
            var dateFrom = DatesFromMonth.DateFrom(createTicketRequest);
            var dateTo   = DatesFromMonth.DateTo(createTicketRequest);
            List <TaskTicket> tickets = new List <TaskTicket>();

            if (createTicketRequest.TicketsGroup == "import")
            {
                tickets = await _context.TaskTickets.Where(
                    t => t.SourceId == createTicketRequest.SourceId &&
                    t.TicketType == TicketType.ImportDocuments &&
                    t.TicketStatus != TicketStatus.Failed &&
                    ((t.DateFrom <= dateFrom && t.DateTo >= dateFrom) || (t.DateFrom <= dateTo && t.DateTo >= dateTo))).ToListAsync();
            }
            //else
            //    tickets = await _context.TaskTickets.Where(
            //        t => t.SourceId == createTicketRequest.SourceId
            //        && t.TicketType == TicketType.ExportDocumentsToErp
            //        && t.TicketStatus != TicketStatus.Failed
            //        && ((t.DateFrom <= dateFrom && t.DateTo >= dateFrom) || (t.DateFrom <= dateTo && t.DateTo >= dateTo))).ToListAsync();
            return(tickets.Count > 0 ? true : false);
        }