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)); }
public void Process(TicketsTask inputData) { string algorithm = inputData.Algorithm; ITicketsProvider ticketsProvider = new TicketsGenerator( startIndex: 0, endIndex: 999999 ); IEnumerable <Ticket> tickets = ticketsProvider.GetTickets(); ILuckyTicketResolver luckyTicketResolver = luckyTicketResolverFactory.Create(algorithm); var counter = new LuckyTicketsCounter(luckyTicketResolver); var luckyTicketsNumber = counter.Count(tickets); logger.LogInformation($"You have {luckyTicketsNumber} lucky tickets"); }
public void GetTickets(int startIndex, int endIndex) { // Arrange var ticketsGenerator = new TicketsGenerator(startIndex, endIndex); IEnumerable <Ticket> expectedTickets = new List <Ticket> { new Ticket(1), new Ticket(2), new Ticket(3) }; // Act var actualTickets = ticketsGenerator.GetTickets(); var luckyTicketComparer = new LuckyTicketEqualityComparer(); // Assert Assert.Equal(expectedTickets, actualTickets, luckyTicketComparer); }
public async Task <ServiceResponse> InsertDocumentsAsync(List <Document> documents, CreateTicketRequest createTicketRequest) { var serviceResponse = new ServiceResponse { Valid = true, Message = "OK" }; var importTickets = TicketsGenerator.ImportTickets(createTicketRequest); try { using (var transaction = await _dbContext.Database.BeginTransactionAsync().ConfigureAwait(false)) { var ticketsIds = new List <int>(); foreach (var ticket in importTickets) { await _dbContext.AddAsync(ticket); await _dbContext.SaveChangesAsync(); ticketsIds.Add(ticket.TaskTicketId); } int ticketId = ticketsIds[0]; documents.ForEach(d => d.TaskTicketId = ticketId); await _dbContext.AddRangeAsync(documents); await _dbContext.SaveChangesAsync(); await transaction.CommitAsync().ConfigureAwait(false); }; } catch (Exception ex) { serviceResponse.Valid = false; serviceResponse.Message = ex.InnerException != null ? ex.InnerException.Message : ex.Message; } return(serviceResponse); }