public static User FromCropioObj(CO_User e) { User obj = new User() { Id = e.Id, Id_External = e.Id_External, CreatedAt = e.CreatedAt, UpdatedAt = e.UpdatedAt, UserName = e.UserName, Email = e.Email, Password = e.Password, MobilePhone = e.MobilePhone, Position = e.Position, Language = e.Language, TimeZone = e.TimeZone, YieldUnits = e.YieldUnits, Status = e.Status, IsDispatcher = e.IsDispatcher, IsDriver = e.IsDriver, Rfid = e.Rfid, AdditionalInfo = e.AdditionalInfo, Description = e.Description, CropioCurrentSignInAt = e.CropioCurrentSignInAt, CropioLastSignInAt = e.CropioLastSignInAt, AuthMethod = e.AuthMethod }; return(obj); }
public static void ShowFields(this CropioApi cropio) { Console.WriteLine("Получение полей."); List <CO_Field> fields = cropio.GetObjects <CO_Field>(cropio.GetObjectsIds <CO_Field>().Data).Data; // Console.WriteLine("Получение групп полей."); List <CO_FieldGroup> fieldGroups = cropio.GetObjects <CO_FieldGroup>(cropio.GetObjectsIds <CO_FieldGroup>().Data).Data; // Console.WriteLine("Получение елементов истории."); List <CO_History_Item> historyItems = cropio.GetObjects <CO_History_Item>(cropio.GetObjectsIds <CO_History_Item>().Data).Data; // Console.WriteLine("Получение елементов истории инвентаря."); List <CO_History_InventoryItem> inventoryHistoryItems = cropio.GetObjects <CO_History_InventoryItem>(cropio.GetObjectsIds <CO_History_InventoryItem>().Data).Data; // Console.WriteLine("Получение культур."); List <CO_Crop> crops = cropio.GetObjects <CO_Crop>(cropio.GetObjectsIds <CO_Crop>().Data).Data; // Console.WriteLine("Получение тревог."); List <CO_Alert> alerts = cropio.GetObjects <CO_Alert>(cropio.GetObjectsIds <CO_Alert>().Data).Data; // Console.WriteLine("Получение типов тревог."); List <CO_AlertType> alertTypes = cropio.GetObjects <CO_AlertType>(cropio.GetObjectsIds <CO_AlertType>().Data).Data; // Console.WriteLine("Получение пользователей."); List <CO_User> users = cropio.GetObjects <CO_User>(cropio.GetObjectsIds <CO_User>().Data).Data; // Console.WriteLine("Получение информации завершено\n\n."); const String filePath = @"..\..\..\DatEx.Cropio.Log\Output.txt"; foreach (CO_Field f in fields) { CO_FieldGroup fg = fieldGroups.FirstOrDefault(x => x.Id == f.Id_FieldGroup); CO_History_Item hi = historyItems.FirstOrDefault(x => x.Id_Field == f.Id && x.Year == DateTime.Now.Year); List <CO_History_InventoryItem> ih = inventoryHistoryItems.Where(x => x.HistoryableType == CE_HistoryableType.Field && x.Id_Historyable == f.Id).ToList(); List <CO_Alert> al = alerts.Where(x => x.AlertableObjectType == CE_AlertableObjectType.Field && x.Id_AlertableObject == f.Id).ToList(); String cropName = String.Empty; if (hi.Id_Crop != null) { CO_Crop crop = crops.FirstOrDefault(x => x.Id == hi.Id_Crop); cropName = crop == null ? "—" : crop.Name; } StringBuilder sb = new StringBuilder() .Append(String.Format("\n ─────────────────────── {0, -5} ────────────────────────────────────\n", f.Id)) .Append("\n End time: ").Append(f.EndTime) .Append("\n Название поля: ").Append(f.Name) .Append("\n Группа полей: ").Append(fg.Name) .Append("\n Область: ").Append(f.AdministrativeAreaName) .Append("\n Район: ").Append(f.SubadministrativeAreaName) .Append("\n Село: ").Append(f.Locality) .Append("\n Описание: ").Append(f.Description) .Append("\n Культура: ") .Append("\n Название: ").Append(cropName) .Append("\n Сорт: ").Append(hi.Variety) .Append("\n Урожайность: ").Append(hi.Productivity).Append(" ц/га") .Append("\n Оценка урожайности: ").Append(hi.ProductivityEstimate).Append(" ц/га") .Append("\n Обработка почвы: ").Append(hi.TillType) .Append("\n Тип орошения ").Append("?") .Append("\n Дата сева: ").Append(hi.SowingDate) .Append("\n Дата уборки: ").Append(hi.HarvestingDate) .Append("\n Дополнительная инфо.: ").Append(hi.AdditionalInfo) .Append("\n Площадь: ") .Append("\n Обрабатываемая: ").Append(f.TillableArea).Append(" га") .Append("\n Официальная: ").Append(f.LegalArea).Append(" га") .Append("\n Расчетная: ").Append(f.CalculatedArea).Append(" га") .Append("\n ■ Применение инвентаря: ") .Append("\n {"); Int32 itemNo = 0; foreach (CO_History_InventoryItem i in ih) { sb .Append("\n ♦♦♦ ───────────────── ").Append(itemNo++) .Append("\n ID: ").Append(i.Id) .Append("\n CreatedAt: ").Append(i.CreatedAt) .Append("\n UpdatedAt: ").Append(i.UpdatedAt) .Append("\n Запись вступает в силу с: ").Append(i.RecordComesIntoEffectAt) .Append("\n Запись утрачивает силу с: ").Append(i.RecordComesOutOfEffectAt) .Append("\n Доступно: ").Append(i.IsAvailable) .Append("\n Скрыто: ").Append(i.IsHidden) .Append("\n Причина: ").Append(i.Reason) .Append("\n Описание: ").Append(i.Description) .Append("\n Тип: ").Append(i.HistoryableType); } sb.Append("\n }") .Append("\n ■ Тревоги: ") .Append("\n {"); itemNo = 0; foreach (CO_Alert a in al) { if (a == null) { continue; } CO_User auth = users.FirstOrDefault(x => x.Id == a.Id_CreatedByUser); CO_User resp = users.FirstOrDefault(x => x.Id == a.Id_ResponsiblePerson); CO_AlertType at = alertTypes.FirstOrDefault(x => x.Id == a.Id_AlertType); sb .Append("\n # ───────────────────── ").Append(itemNo++) .Append("\n ID: ").Append(a.Id) .Append("\n Время создания: ").Append(a.CreatedAt) .Append("\n Время изменения: ").Append(a.UpdatedAt) .Append("\n Начало события: ").Append(a.EventStartTime) .Append("\n Завершения события: ").Append(a.EventStopTime) .Append("\n Время закрытия тревоги: ").Append(a.AlertClosedAt) .Append("\n Статус: ").Append(a.Status) .Append("\n Описание: ").Append(a.Description); if (auth != null) { sb.Append("\n Тревога создана: ").Append(String.Format("{0} ({1})", auth.UserName, auth.Position)); } if (resp != null) { sb.Append("\n Ответственная особа: ").Append(String.Format("{0} ({1})", resp.UserName, resp.Position)); } sb.Append("\n Id_AutomaticAlert: ").Append(a.Id_AutomaticAlert); if (at == null) { continue; } sb .Append("\n Тип тревоги: ") .Append("\n Тип тревоги: ").Append(at.AlertType) .Append("\n Название: ").Append(at.Name) .Append("\n Приоритет: ").Append(at.Priority) .Append("\n Описание: ").Append(at.Description) .Append("\n Доп. инфо.: ").Append(at.AdditionalInfo) .Append("\n Архивировано: ").Append(at.IsArchived); } sb.Append("\n }"); String result = sb.ToString(); File.AppendAllText(filePath, result); Console.WriteLine(result); Console.ReadKey(); } }