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