private async Task <List <InspectionDataCarriageDto> > GetInspectionCounters(int inspectionId) { var sqlR = new InspectionDataRepository(_logger); var countersFromSql = await sqlR.GetByInspectionId(inspectionId); var result = countersFromSql .Where(x => x.Type == InspectionDataType.KwHours) .Select(x => new InspectionDataCarriageDto { CarriageName = "Вагон " + x.Carriage.Serial, Value = x.Value }).ToList(); return(result); }
private async Task GetInspectionCouters(InspectionDataRepository inspdatarep, Inspection fromSqlsInspection, JournalInspection journalInspection) { var countersFromSql = await inspdatarep.GetByInspectionId(fromSqlsInspection.Id); if (countersFromSql.Any()) { journalInspection.Tabs.Description.KmPerShift = String.Join(", ", countersFromSql.Where(o => o.Type == InspectionDataType.KmPerShift) .Select(o => o.Value)); journalInspection.Tabs.Description.KmTotal = String.Join(", ", countersFromSql.Where(o => o.Type == InspectionDataType.KmTotal) .Select(o => o.Value)); journalInspection.Tabs.Description.KwHours = String.Join(", ", countersFromSql.Where(o => o.Type == InspectionDataType.KwHours) .Select(o => _GetCarriageNumCanBeNull(o.Carriage) + ":" + o.Value)); var brakeShoes = String.Join(", ", countersFromSql.Where(o => o.Type == InspectionDataType.BrakeShoes) .Select(o => o.Text)); journalInspection.Tabs.BrakeShoesSerial = brakeShoes; } }
private async Task <List <InspectionDataDto> > GetInspectionOtherData(int inspectionId) { var sqlR = new InspectionDataRepository(_logger); var countersFromSql = await sqlR.GetByInspectionId(inspectionId); var result = countersFromSql .Where(q => q.Type == InspectionDataType.KmPerShift) .Select(x => new InspectionDataDto { Type = x.Type.GetDescription(), Value = x.Value.ToString() }).ToList(); result.AddRange( countersFromSql .Where(q => q.Type == InspectionDataType.KmTotal) .Select(x => new InspectionDataDto { Type = x.Type.GetDescription(), Value = x.Value.ToString() }).ToList() ); result.AddRange( countersFromSql .Where(q => q.Type == InspectionDataType.BrakeShoes) .Select(x => new InspectionDataDto { Type = x.Type.GetDescription(), Value = string.Join(", ", countersFromSql .Where(o => o.Type == InspectionDataType.BrakeShoes) .Select(o => o.Text)) }).ToList() ); return(result); }
//30 - Приёмка поезда ПР //31 - Выпуск поезда ПР //32 - Приёмка поезда ЛБ //33 - Сдача поезда ЛБ public async Task <JournalPaging> GetJournalInspectionAndTasks(int skip, int limit, string filter) { var sqlr = new InspectionRepository(_logger); var inspdatarep = new InspectionDataRepository(_logger); var sqlTrainR = new TrainRepository(_logger); var sqlUserR = new UserRepository(_logger); var iR = new InspectionRepository(_logger); var mR = new MeterageRepository(_logger); var sqlStatusR = new TaskStatusRepository(_logger); var sqlExecutorR = new ExecutorRepository(_logger); var sqlRTask = new TaskRepository(_logger); var sqlRBrigade = new BrigadeRepository(_logger); var sqlRJournal = new JournalRepository(_logger); var listFull = new List <JournalDateItem>(); var fromSqlsInspections = await sqlr.GetAll(); foreach (var fromSqlsInspection in fromSqlsInspections) { var train = (await sqlTrainR.ByIdWithStations(fromSqlsInspection.TrainId)); var user = await sqlUserR.ById(fromSqlsInspection.UserId); var journalInspection = new JournalInspection { Id = fromSqlsInspection.Id, Type = "inspection", InspectionId = fromSqlsInspection.Id, StatusId = (int)fromSqlsInspection.Status, TypeId = (int)fromSqlsInspection.CheckListType, Date = fromSqlsInspection.DateStart, TrainName = train.Name, TrainId = train.Id, Tabs = new JournalInspectionTabs(), UserName = user.Name, }; if (user.BrigadeId != null) { journalInspection.OwnerBrigadeType = (await sqlRBrigade.ById((int)user.BrigadeId)).BrigadeType; } //дескрипшен var counters = await iR.GetCounters(fromSqlsInspection.Id); journalInspection.Tabs.Description = new JournalInspectionDescription { TasksCount = counters.Tasks, DataEnd = fromSqlsInspection.DateEnd, //Выдает количество уникальных меток AllLabelCount = counters.Labels, TempCount = counters.Measurements }; //лейблы await getInspectionLabels(mR, fromSqlsInspection, journalInspection); //измерения await getInspectionMeterage(mR, fromSqlsInspection, journalInspection); //счетчики await GetInspectionCouters(inspdatarep, fromSqlsInspection, journalInspection); //говнохак под ебанутые фильтры и вывод. TypeId == 2 - Приемка, 3 - сдача changeInspetionTypeForUi(journalInspection); //Фильтруем var isFiltered = await InspectionFilter(filter, sqlRTask, fromSqlsInspection, journalInspection); if (!isFiltered) { listFull.Add(new JournalDateItem { Date = journalInspection.Date, Inspection = journalInspection } ); } } //Таски var fromSqlsT = await sqlRJournal.GetAllTaskForJournal(); foreach (var fromSql in fromSqlsT) { var journalTask = new JournalTask { Type = "Task", TaskId = fromSql.TaskId, TaskType = fromSql.TaskType, TrainName = fromSql.TrainName, TrainId = fromSql.TrainId, UserName = fromSql.UserName, Date = fromSql.CreateDate, CarriageName = CreateCarriageName(fromSql.TrainName, fromSql.CarriageNumber), CarriageNum = fromSql.CarriageNumber, CarriageId = fromSql.CarriageId, EquipmentName = fromSql.EquipmentName, FaultName = fromSql.FaultName, InspectionInfo = _GetInspectionInfo(fromSql.InspectionId, fromSql.InspectionType), CarriagesSerialNumber = fromSql.CarriagesSerialNumber, TaskAttributeId = fromSql.TaskAttributeId }; var executor = (await sqlExecutorR.GetByTaskId(fromSql.TaskId)).LastOrDefault(); if (executor != null) { journalTask.ExecutorBrigadeType = (int)executor.BrigadeType; } var taskStatus = sqlStatusR.GetByTrainTaskId(fromSql.TaskId); if (taskStatus != null) { journalTask.StatusId = (int)sqlStatusR.GetByTrainTaskId(fromSql.TaskId).Status; } //journalTask.StatusId = fromSql.TaskId; var isFiltered = TaskFilter(filter, fromSql, journalTask); if (!isFiltered) { //response.Add(journalTask.ToJson()); listFull.Add(new JournalDateItem { Date = journalTask.Date, Task = journalTask } ); } } //sort by date listFull.Sort((x, y) => y.Date.CompareTo(x.Date)); //пагинация List <JournalDateItem> listSkiplimit = paging(skip, ref limit, listFull); //Делаем жсон стрингу для вывода var pagingList = new List <string>(); converToJsonString(listSkiplimit, pagingList); var result = new JournalPaging { Data = pagingList.ToArray(), Total = listFull.Count }; return(result); }