コード例 #1
0
        public async IAsyncEnumerable <JournalResponse> JournalAsync(JournalRequest request)
        {
            var filePath      = "TestData.json";
            var lotsOfNumbers = Enumerable.Range(0, 100);
            var data          = JsonConvert.SerializeObject(lotsOfNumbers);

            File.WriteAllText(filePath, data);

            var chunkSize = 4096;

            byte[] buffer = new byte[chunkSize];
            int    bytesRead;

            using (var stream = File.OpenRead(filePath))
            {
                while ((bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length)) > 0)
                {
                    yield return(new JournalResponse
                    {
                        Chunk = buffer.ToList()
                    });

                    buffer = new byte[chunkSize];
                }
            }
        }
コード例 #2
0
        public JournalResponse Journal(JournalRequest request)
        {
            log.Trace("this is the service ->Journal");
            JournalResponse jour = new JournalResponse();
            DateTime        date = DateTime.Now;

            //objeto Operaction : name, calculation, date
            Operation op = new Operation();

            op.date = date;
            op.name = "Journal";

            //Request id and make a Operation for the response
            if (!string.IsNullOrEmpty(request.id))
            {
                //adding the key  =id and the object Operation
                JournalList.Add(new KeyValuePair <string, Operation>(request.id, op));
            }

            // buscar en el journallist los que coinciden con el id
            var matches = JournalList.Where(x => x.Key == request.id).Select(z => z.Value).ToList();

            jour.Operations = matches;

            return(jour);
        }
コード例 #3
0
 public void EditJournal([FromBody] JournalRequest request)
 {
     LogsDataManager.SendLog(
         request.LibrarianId,
         "Librarian",
         "edited journal " + request.Journal.Title);
     DocumentsDataManager.EditJournal(request.Journal);
 }
コード例 #4
0
        public JournalResponse ReturnJournal([FromBody] JournalRequest RequestedUser)
        {
            var currentUser = UsersHandler.KnownOrNot(RequestedUser.Id);
            var Journal     = new JournalResponse
            {
                Operations = currentUser.Operations
            };

            return(Journal);
        }
コード例 #5
0
        public IHttpActionResult Journal(JournalRequest request)
        {
            IEnumerable <string> trackingId;

            Request.Headers.TryGetValues("X-Evi-Tracking-Id", out trackingId);

            var res = servicio.Journal(request);

            return(Ok(res));
        }
コード例 #6
0
 public long AddJournal([FromBody] JournalRequest request)
 {
     if (GetLibrarianById(request.LibrarianId).Authority < 2)
     {
         return(0);
     }
     LogsDataManager.SendLog(
         request.LibrarianId,
         "Librarian",
         "added journal " + request.Journal.Title);
     return(DocumentsDataManager.AddJournal(request.Journal));
 }
コード例 #7
0
ファイル: Program.cs プロジェクト: LeeB97/Calculator
        private static void checkHistory()
        {
            var request = new JournalRequest();

            request.Id = UserInputId;

            if (string.IsNullOrEmpty(UserInputId))
            {
                Console.Write("\nID: ");
                request.Id = Console.ReadLine().Trim();
            }

            doRequest("journal", "query", request);
        }
コード例 #8
0
        public JournalResponse GetJournal(JournalRequest request)
        {
            var journalFound = _journal.TryGetValue(request.Id, out var journalOperations);

            if (!journalFound)
            {
                return(new JournalResponse());
            }

            return(new JournalResponse
            {
                Operations = journalOperations
            });
        }
コード例 #9
0
        public IHttpActionResult Query(JournalRequest request)
        {
            if (request == null || request.Id == null)
            {
                logger.Debug($"Bad Request in Journal: {request}, ID: {request?.Id}");
                return(Content(HttpStatusCode.BadRequest, ErrorList.e400));
            }

            var response = RegistryData.byId(request.Id);

            if (response == null)
            {
                logger.Debug($"No Journal Found For The Id: {request?.Id}");
                return(Content(HttpStatusCode.NotFound, ErrorList.e500));
            }

            return(Ok(response.Operations));
        }
コード例 #10
0
 public static void RequestJournal()
 {
     if (XEviTrackingId != "")
     {
         var request = new JournalRequest
         {
             Id = XEviTrackingId
         };
         var response = JsonConvert.DeserializeObject <JournalResponse>(LaunchRequestAndReceiveResponse(request, "journal"));
         foreach (var operation in response.Operations)
         {
             Console.WriteLine(operation.Info());
         }
     }
     else
     {
         Console.WriteLine("You cannot request access to a journal as long as you are using incognito mode.");
     }
 }
コード例 #11
0
        public void RegisterOperation_WhenJournalUnexisting_StartsJournal()
        {
            var trackId        = "trackId";
            var journalRequest = new JournalRequest {
                Id = trackId
            };
            var registeredOperations = _sut.GetJournal(journalRequest);

            Assert.False(registeredOperations.Operations.Any());
            var request  = TestHelper.GenerateRequest();
            var response = TestHelper.GenerateResponse();

            _sut.RegisterOperation(trackId, request, response, DateTime.UtcNow);

            using (new AssertionScope())
            {
                _journal.TryGetValue(trackId, out var trackJournal).Should().BeTrue();
                trackJournal.Should().NotBeEmpty();
            }
        }
コード例 #12
0
        private static async Task JournalSee()
        {
            Console.Clear();

            if (string.IsNullOrWhiteSpace(trackId))
            {
                AnsiConsole.MarkupLine("You are not tracking your journal");
                if (AnsiConsole.Confirm("Would you like to start tracking it?"))
                {
                    JournalStart();
                }
                else
                {
                    return;
                }
            }

            var journalRequest = new JournalRequest {
                Id = trackId
            };
            var response = await CalculatorServiceClient.QueryAsync(journalRequest);

            AnsiConsole.MarkupLine($"Operations for the tracking id '{trackId}':");

            var table = new Table();

            table.AddColumn("Operation");
            table.AddColumn("Calculation");
            table.AddColumn("Date");

            foreach (var operation in response.Operations)
            {
                table.AddRow(operation.Operation, operation.Calculation, operation.Date.ToString());
            }

            AnsiConsole.Render(table);
            AnsiConsole.MarkupLine("Press any key to exit");
            Console.ReadKey();
            Console.Clear();
        }
コード例 #13
0
        public IActionResult GetJournal([FromBody] JournalRequest request)
        {
            var response = _journalService.GetJournal(request);

            return(Ok(response));
        }
コード例 #14
0
        static void Main(string[] args)
        {
            //this is the menu

            Console.WriteLine("¿quieres hacer un traking de las operaciones (s/n)?");
            var y = Console.ReadLine();

            if (y.Equals("s"))
            {
                Console.WriteLine("dime tu id");
                id = Console.ReadLine();
            }
            int i = -1;

            do
            {
                //type of operation
                Console.WriteLine("1. suma 2. resta 3.multi 4.dividir 5.raiz 6.journal 7.salir");

                //read an option
                i = leer();

                string operationUrl = url;
                switch (i)
                {
                case 1:
                    AddRequest add = new AddRequest();
                    operationUrl = url + "Sum";
                    add.Addends  = leerArray();
                    SendRequestAndReturnResponseWithTraking("Sum", operationUrl, add, id);
                    i = -1;
                    break;

                case 2:
                    SubRequest sub = new SubRequest();
                    operationUrl = url + "Diference";
                    Console.WriteLine("introduce Minuend");
                    sub.Minuend = leer();
                    Console.WriteLine("introduce Minuend");
                    sub.Subtrahend = leer();
                    SendRequestAndReturnResponseWithTraking("Diference", operationUrl, sub, id);
                    i = -1;

                    break;

                case 3:
                    MultRequest mult = new MultRequest();
                    operationUrl = url + "Product";
                    mult.Factors = leerArray();
                    SendRequestAndReturnResponseWithTraking("Product", operationUrl, mult, id);
                    i = -1;

                    break;

                case 4:
                    DivRequest div = new DivRequest();
                    operationUrl = url + "Div";
                    Console.WriteLine("introduce Dividend");
                    div.Dividend = leer();
                    Console.WriteLine("introduce Divisor");
                    div.Divisor = leer();
                    SendRequestAndReturnResponseWithTraking("Div", operationUrl, div, id);
                    i = -1;

                    break;

                case 5:
                    SqrtRequest sqrt = new SqrtRequest();
                    operationUrl = url + "Sqrt";
                    Console.WriteLine("intro num");
                    sqrt.Number = leer();
                    SendRequestAndReturnResponseWithTraking("Sqrt", operationUrl, sqrt, id);
                    i = -1;

                    break;

                case 6:
                    JournalRequest jour = new JournalRequest();
                    operationUrl = url + "Journal";
                    Console.WriteLine("dime id");
                    jour.id = Console.ReadLine();
                    SendRequestAndReturnResponseWithTraking("Journal", operationUrl, jour, id);
                    i = -1;
                    break;

                case 7:
                    Console.WriteLine("bye");
                    break;
                }
            } while (!(i > 0 && i < 8));
            Console.ReadLine();
        }
コード例 #15
0
 IAsyncEnumerable <JournalResponse> IPOS.JournalAsync(JournalRequest request)
 {
     throw new NotSupportedException("Async streaming is not supported in HTTP. Please call the non-async Journal method.");
 }
コード例 #16
0
        public async Task <IActionResult> GetJournalPdf([FromBody] JournalRequest req)
        {
            await CheckPermission();

            var html = @"<html><head>
<style type='text/css'>
.task {
    border-collapse: collapse;
    border: 1px solid black;
}
.task td {
    padding: 5px;
    border: 1px solid black;
}
.task th {
    padding: 5px;
    background-color: #909090;
    border: 1px solid black;
}
//.break {
//    page-break-after: always;
//}

hr.ex2 {
  border:none;
  border-top:3px dotted #aaa;
  color:#fff;
  background-color:#fff;
  height:1px;
  width:100%;
}

</style></head><body>";

            var tr          = new TaskRepository(_logger);
            var serviceTask = new TaskService(_logger);

            if (req.Tasks.Length > 0)
            {
                var tasksDictionary = await tr.GetTrainTasksForPdf(req.Tasks);

                foreach (var tasks in tasksDictionary)
                {
                    html += "<table><tr><td>Поезд:</td><td>" + tasks.Key + "</td></tr></table>";
                    html += "<br /><h2>Задачи</h2>";
                    if (tasks.Value.Count > 0)
                    {
                        foreach (var task in tasks.Value)
                        {
                            html +=
                                "<table class='task'><tr><th>Вагон</th><th>Местоположение</th><th>Оборудование</th><th>Типовая неисправность</th><th>Описание</th><th>Метка</th><th>№ задачи</th><th>Время</th></tr>";
                            var history = await serviceTask.AddHistoryData(task.Id);

                            html += "<tr><td>" + task.Carriage + "</td><td>" + task.Location + "</td><td>" +
                                    task.Equipment + "</td><td>" + task.Fault + "</td><td>" + task.Description +
                                    "</td><td>" + task.Label + "</td><td>" + task.Id + "</td><td>" + task.Created +
                                    "</td></tr>";
                            html += "<tr><td colspan='8'>";
                            if (history.Count > 0)
                            {
                                html += "<b>Комментарии:</b><br />";
                                html += "";
                                foreach (var item in history)
                                {
                                    html +=
                                        $"{item.Date} {item.User} ({TaskRepository.BrigadeTypeToString((BrigadeType?) item.UserBrigadeType)}): ";
                                    switch (item.Type)
                                    {
                                    case "Comment":
                                        html += $"{item.Text}<br />";
                                        break;

                                    case "Status":
                                        html +=
                                            $"<b>Смена статуса:</b> {tr.StatusToString((TaskStatus?) item.OldStatus)} > {tr.StatusToString((TaskStatus?) item.NewStatus)}<br />";
                                        break;

                                    case "Executor":
                                        html +=
                                            $"<b>Смена исполнителя:</b> {TaskRepository.BrigadeTypeToString((BrigadeType?) item.OldExecutorBrigadeType)} > {TaskRepository.BrigadeTypeToString((BrigadeType?) item.NewExecutorBrigadeType)}<br />";
                                        break;
                                    }

                                    html += "";
                                }
                                html += "<br />";
                                html += "</td></tr>";
                                html += "</table>";
                                html += "<br />";
                                html += "<hr class=\"ex2\"></hr>";
                                html += "<br />";
                            }
                        }
                    }
                    html += "</table>";
                }
            }

            var i     = 0;
            var count = req.Inspections.Count();

            foreach (var id in req.Inspections)
            {
                var insp = await GetInspectionHtmlForPdf(id);

                html += insp;

                if (++i != count) //not for last item
                //html += "<div class='break'></div>";
                {
                    html += "<hr class=\"ex2\"></hr>";
                }
            }

            var output = _pdfConverter.Convert(new HtmlToPdfDocument
            {
                GlobalSettings =
                {
                    ColorMode   = ColorMode.Color,
                    Orientation = Orientation.Portrait,
                    PaperSize   = PaperKind.A4,
                },
                Objects =
                {
                    new ObjectSettings
                    {
                        HtmlContent = html,
                        WebSettings ={ DefaultEncoding                   = "utf-8" }
                    }
                }
            });

            //
            return(File(output, "application/pdf", "journal_" + new Random().Next(0, 10000) + ".pdf"));
        }
コード例 #17
0
        public IAsyncEnumerable <JournalResponse> JournalAsync(JournalRequest request)
        {
            var stream = _innerPOS.Journal(request.ftJournalType, request.From, request.To);

            return(stream.ToAsyncEnumerable(request.MaxChunkSize));
        }
コード例 #18
0
 IAsyncEnumerable <JournalResponse> ifPOS.v1.IPOS.JournalAsync(JournalRequest request)
 {
     throw new NotSupportedException("Async Streaming are not supported in Http");
 }