public ActionResult <BaseResponse> UpdateStatus(DetailedStatus status) { try { _statusService.AddOrUpdate(status); if (status.Id != 0) { var oldStatus = _statusService.Get(status.Id); var newStatus = _statusService.Get(status.Status); _deviceService.UpdateStatuses(newStatus, oldStatus); } return(new BaseResponse() { Message = $"Updated/Added status: {status.Status}" }); } catch (Exception ex) { return(new BaseResponse() { Error = ErrorCode.InternalError, Message = ex.Message }); } }
void WhenSendingStatusAsXml(Guid clientId, DetailedStatus detailedStatus) { _response = _browser.Put(UrlList.TestClients_Root + "/" + clientId + "/status", with => { with.JsonBody(detailedStatus); with.Accept("application/xml"); }); }
/// <summary> /// 默认构造函数 /// </summary> public BaseResponse() { GatewayStatus = GatewayStatusCode.Success; GatewayMessage = GatewayStatus.Description(); DetailedStatus = DetailedStatusCode.Success; DetailedMessage = DetailedStatus.Description(); }
public virtual bool UpdateStatus(Guid clientId, DetailedStatus detailedStatus) { if (ClientsCollection.Clients.All(client => client.Id != clientId)) return false; ClientsCollection.Clients.First(client => client.Id == clientId).DetailedStatus = detailedStatus.Status; return true; }
public virtual bool UpdateStatus(Guid clientId, DetailedStatus detailedStatus) { if (ClientsCollection.Clients.All(client => client.Id != clientId)) { return(false); } ClientsCollection.Clients.First(client => client.Id == clientId).DetailedStatus = detailedStatus.Status; return(true); }
private async void GetClassifications() { Statuses = new ObservableCollection <DetailedStatus>(); var service = ServicesManager.SelfService; try { var statusResponse = await service.GetStatuses(Token); if (statusResponse == null || statusResponse.Error != ErrorCode.OK) { MainWindow.Instance.AddNotification(statusResponse ?? new BaseResponse() { Error = ErrorCode.InternalError, Message = "Failed to receive response from host." }); } else { foreach (var stat in statusResponse.Statuses) { Statuses.Add(stat); } if (Statuses.Count > 0) { CurrentStatus = Statuses[0]; } } } catch (ServiceException ex) { //TODO: HIGH Add logging MainWindow.Instance.AddNotification(ex); } }
private async Task ValidateList(SqlService sql, ModlistMetadata list, WorkQueue queue, ValidateModlist whitelists) { var modlistPath = Consts.ModListDownloadFolder.Combine(list.Links.MachineURL + Consts.ModListExtension); if (list.NeedsDownload(modlistPath)) { modlistPath.Delete(); var state = DownloadDispatcher.ResolveArchive(list.Links.Download); Utils.Log($"Downloading {list.Links.MachineURL} - {list.Title}"); await state.Download(modlistPath); } else { Utils.Log($"No changes detected from downloaded modlist"); } Utils.Log($"Loading {modlistPath}"); var installer = AInstaller.LoadFromFile(modlistPath); Utils.Log($"{installer.Archives.Count} archives to validate"); await DownloadDispatcher.PrepareAll(installer.Archives.Select(a => a.State)); var validated = (await installer.Archives .PMap(queue, async archive => { var isValid = await IsValid(sql, whitelists, archive); return(new DetailedStatusItem { IsFailing = !isValid, Archive = archive }); })) .ToList(); var status = new DetailedStatus { Name = list.Title, Archives = validated.OrderBy(v => v.Archive.Name).ToList(), DownloadMetaData = list.DownloadMetadata, HasFailures = validated.Any(v => v.IsFailing) }; var dto = new ModListStatus { Id = list.Links.MachineURL, Summary = new ModListSummary { Name = status.Name, MachineURL = list.Links?.MachineURL ?? status.Name, Checked = status.Checked, Failed = status.Archives.Count(a => a.IsFailing), Passed = status.Archives.Count(a => !a.IsFailing), }, DetailedStatus = status, Metadata = list }; Utils.Log( $"Writing Update for {dto.Summary.Name} - {dto.Summary.Failed} failed - {dto.Summary.Passed} passed"); await sql.UpdateModListStatus(dto); Utils.Log( $"Done updating {dto.Summary.Name}"); }
HttpStatusCode UpdateStatus(Guid clientId, DetailedStatus detailedStatus) { return(ServerObjectFactory.Resolve <TestClientCollectionMethods>().UpdateStatus(clientId, detailedStatus) ? HttpStatusCode.OK : HttpStatusCode.NotFound); }
HttpStatusCode UpdateStatus(Guid clientId, DetailedStatus detailedStatus) { return ServerObjectFactory.Resolve<TestClientCollectionMethods>().UpdateStatus(clientId, detailedStatus) ? HttpStatusCode.OK : HttpStatusCode.NotFound; }
private static async Task ValidateList(DBContext db, ModlistMetadata list, WorkQueue queue, ValidateModlist whitelists) { var existing = await db.ModListStatus.FindOneAsync(l => l.Id == list.Links.MachineURL); var modlist_path = Path.Combine(Consts.ModListDownloadFolder, list.Links.MachineURL + Consts.ModListExtension); if (list.NeedsDownload(modlist_path)) { if (File.Exists(modlist_path)) { File.Delete(modlist_path); } var state = DownloadDispatcher.ResolveArchive(list.Links.Download); Utils.Log($"Downloading {list.Links.MachineURL} - {list.Title}"); await state.Download(modlist_path); } else { Utils.Log($"No changes detected from downloaded modlist"); } Utils.Log($"Loading {modlist_path}"); var installer = AInstaller.LoadFromFile(modlist_path); Utils.Log($"{installer.Archives.Count} archives to validate"); DownloadDispatcher.PrepareAll(installer.Archives.Select(a => a.State)); var validated = (await installer.Archives .PMap(queue, async archive => { bool is_failed; try { is_failed = !(await archive.State.Verify(archive)) || !archive.State.IsWhitelisted(whitelists.ServerWhitelist); } catch (Exception) { is_failed = false; } return(new DetailedStatusItem { IsFailing = is_failed, Archive = archive }); })) .ToList(); var status = new DetailedStatus { Name = list.Title, Archives = validated.OrderBy(v => v.Archive.Name).ToList(), DownloadMetaData = list.DownloadMetadata, HasFailures = validated.Any(v => v.IsFailing) }; var dto = new ModListStatus { Id = list.Links.MachineURL, Summary = new ModlistSummary { Name = status.Name, Checked = status.Checked, Failed = status.Archives.Count(a => a.IsFailing), Passed = status.Archives.Count(a => !a.IsFailing), }, DetailedStatus = status, Metadata = list }; Utils.Log( $"Writing Update for {dto.Summary.Name} - {dto.Summary.Failed} failed - {dto.Summary.Passed} passed"); await ModListStatus.Update(db, dto); Utils.Log( $"Done updating {dto.Summary.Name}"); }
public async Task <BaseResponse> UpdateStatus(string token, DetailedStatus status) { return(await RequestHandler.ProcessPostRequest <BaseResponse, DetailedStatus>(POST_UPDATESTATUSES, status, token)); }
void WHEN_SendingStatus_as_json(Guid clientId, DetailedStatus detailedStatus) { _response = _browser.Put(UrlList.TestClients_Root + "/" + clientId + "/status", with => { with.JsonBody<DetailedStatus>(detailedStatus); with.Accept("application/json"); }); }
private void AddProperties(DeviceDataFlag flag, List <Tuple <string, string> > properties) { //TODO: HIGH AddOrUpdate property switch (flag) { case DeviceDataFlag.Statusai: var statuses = new List <DetailedStatus>(); foreach (var statusItem in properties) { var stat = new DetailedStatus() { Status = statusItem.Item1, Description = statusItem.Item2, }; statuses.Add(stat); } _statusService.AddOrUpdate(statuses); break; case DeviceDataFlag.klasifikatorius: var models = new List <DeviceModel>(); foreach (var statusItem in properties) { var deviceModel = new DeviceModel() { Name = statusItem.Item1, Description = statusItem.Item2, }; models.Add(deviceModel); } _deviceModelService.AddOrUpdate(models); break; case DeviceDataFlag.komplektacijos: var groups = new List <Classification>(); foreach (var groupItem in properties) { var group = new Classification() { Code = groupItem.Item1, Model = groupItem.Item2, }; groups.Add(group); } _groupService.AddOrUpdate(groups); break; case DeviceDataFlag.Vietos: var locations = new List <DeviceLocation>(); foreach (var locationItem in properties) { var location = new DeviceLocation() { Name = locationItem.Item1, Details = locationItem.Item2, }; locations.Add(location); } _deviceLocationService.AddOrUpdate(locations); break; } }
public void AddOrUpdate(DetailedStatus status) { _detailedStatusService.AddOrUpdate(_mapper.Map <DetailedStatusData>(status)); _detailedStatusService.Save(); }