public static bool CreateProjectSettings(string projectUid, string userId, string settings, ProjectSettingsType settingsType) { var actionUtc = new DateTime(2017, 1, 1, 2, 30, 3); var createProjectSettingsEvent = new UpdateProjectSettingsEvent() { ProjectUID = new Guid(projectUid), UserID = userId, Settings = settings, ProjectSettingsType = settingsType, ActionUTC = actionUtc }; Console.WriteLine($"Create project settings event created"); Console.WriteLine( $"UpdateProjectSettingsEvent ={JsonConvert.SerializeObject(createProjectSettingsEvent)}))')"); var projectEvent = createProjectSettingsEvent; var projectSettings = new ProjectSettings { ProjectUid = projectEvent.ProjectUID.ToString(), ProjectSettingsType = projectEvent.ProjectSettingsType, Settings = projectEvent.Settings, UserID = projectEvent.UserID, LastActionedUtc = projectEvent.ActionUTC }; Console.WriteLine( $"projectSettings after cast/convert ={JsonConvert.SerializeObject(projectSettings)}))')"); ProjectRepo.StoreEvent(createProjectSettingsEvent).Wait(); var g = ProjectRepo.GetProjectSettings(projectUid, userId, settingsType); g.Wait(); return(g.Result != null ? true : false); }
/// <summary> /// Processes the UpsertProjectSettings request /// </summary> protected override async Task <ContractExecutionResult> ProcessAsyncEx <T>(T item) { ContractExecutionResult result = null; var request = CastRequestObjectTo <ProjectSettingsRequest>(item, errorCode: 68); await ValidateProjectWithCustomer(customerUid, request?.projectUid); if (request.ProjectSettingsType == ProjectSettingsType.Targets || request.ProjectSettingsType == ProjectSettingsType.Colors) { await RaptorValidateProjectSettings(request); } var upsertProjectSettingsEvent = new UpdateProjectSettingsEvent() { ProjectUID = new Guid(request.projectUid), UserID = userId, ProjectSettingsType = request.ProjectSettingsType, Settings = request.Settings, ActionUTC = DateTime.UtcNow }; if (await projectRepo.StoreEvent(upsertProjectSettingsEvent).ConfigureAwait(false) < 1) { serviceExceptionHandler.ThrowServiceException(HttpStatusCode.BadRequest, 52); } try { var projectSettings = await projectRepo.GetProjectSettings(request.projectUid, userId, request.ProjectSettingsType).ConfigureAwait(false); switch (request.ProjectSettingsType) { case ProjectSettingsType.Targets: case ProjectSettingsType.Colors: result = projectSettings == null ? new ProjectSettingsResult(request.projectUid, null, request.ProjectSettingsType) : new ProjectSettingsResult(request.projectUid, JsonConvert.DeserializeObject <JObject>(projectSettings.Settings), projectSettings.ProjectSettingsType); break; case ProjectSettingsType.ImportedFiles: var tempObj = JsonConvert.DeserializeObject <JArray>(projectSettings.Settings); var tempJObject = new JObject { ["importedFiles"] = tempObj }; result = new ProjectSettingsResult(request.projectUid, tempJObject, projectSettings.ProjectSettingsType); break; default: serviceExceptionHandler.ThrowServiceException(HttpStatusCode.InternalServerError, 77); break; } } catch (Exception e) { serviceExceptionHandler.ThrowServiceException(HttpStatusCode.InternalServerError, 69, e.Message); } return(result); }
public void UpsertProjectSettings_CantChangeType() { var actionUTC = new DateTime(2017, 1, 1, 2, 30, 3); var projectUid = Guid.NewGuid().ToString(); string settings = @"<ProjectSettings> </ ProjectSettings > "; string settingsupdated = TargetJsonString; var createProjectSettingsEvent = new UpdateProjectSettingsEvent() { ProjectUID = new Guid(projectUid), ProjectSettingsType = ProjectSettingsType.Targets, Settings = settings, UserID = Guid.NewGuid().ToString(), ActionUTC = actionUTC }; var updatedProjectSettingsEvent = new UpdateProjectSettingsEvent() { ProjectUID = new Guid(projectUid), ProjectSettingsType = ProjectSettingsType.ImportedFiles, Settings = settingsupdated, UserID = createProjectSettingsEvent.UserID, ActionUTC = actionUTC.AddMilliseconds(2) }; var s = projectRepo.StoreEvent(createProjectSettingsEvent); s.Wait(); Assert.Equal(1, s.Result); s = projectRepo.StoreEvent(updatedProjectSettingsEvent); s.Wait(); Assert.Equal(1, s.Result); var g = projectRepo.GetProjectSettings(createProjectSettingsEvent.ProjectUID.ToString(), createProjectSettingsEvent.UserID, ProjectSettingsType.Targets); g.Wait(); Assert.NotNull(g.Result); var projectSettings = g.Result; Assert.Equal(projectUid.ToString(), projectSettings.ProjectUid); Assert.Equal(createProjectSettingsEvent.ProjectSettingsType, projectSettings.ProjectSettingsType); Assert.Equal(createProjectSettingsEvent.Settings, projectSettings.Settings); Assert.Equal(createProjectSettingsEvent.UserID, projectSettings.UserID); var settingsList = projectRepo.GetProjectSettings(createProjectSettingsEvent.ProjectUID.ToString(), createProjectSettingsEvent.UserID); settingsList.Wait(); Assert.NotNull(settingsList.Result); var projectSettingsList = settingsList.Result.ToList(); Assert.Equal(2, projectSettingsList.Count()); }
public void CreateProjectSettings_DoesntExist() { var actionUTC = new DateTime(2017, 1, 1, 2, 30, 3); var projectUid = Guid.NewGuid().ToString(); string settings = TargetJsonString; var createProjectSettingsEvent = new UpdateProjectSettingsEvent() { ProjectUID = new Guid(projectUid), ProjectSettingsType = ProjectSettingsType.Targets, Settings = settings, UserID = Guid.NewGuid().ToString(), ActionUTC = actionUTC }; var s = projectRepo.StoreEvent(createProjectSettingsEvent); s.Wait(); Assert.Equal(1, s.Result); var g = projectRepo.GetProjectSettings(createProjectSettingsEvent.ProjectUID.ToString(), createProjectSettingsEvent.UserID); g.Wait(); Assert.NotNull(g.Result); var projectSettingsList = g.Result.ToList(); Assert.Single(projectSettingsList); Assert.Equal(projectUid.ToString(), projectSettingsList[0].ProjectUid); Assert.Equal(createProjectSettingsEvent.ProjectSettingsType, projectSettingsList[0].ProjectSettingsType); Assert.Equal(settings, projectSettingsList[0].Settings); Assert.Equal(createProjectSettingsEvent.UserID, projectSettingsList[0].UserID); var single = projectRepo.GetProjectSettings(createProjectSettingsEvent.ProjectUID.ToString(), createProjectSettingsEvent.UserID, ProjectSettingsType.Targets); single.Wait(); Assert.NotNull(single.Result); Assert.Equal(projectUid.ToString(), single.Result.ProjectUid); Assert.Equal(createProjectSettingsEvent.ProjectSettingsType, single.Result.ProjectSettingsType); Assert.Equal(settings, single.Result.Settings); Assert.Equal(createProjectSettingsEvent.UserID, single.Result.UserID); single = projectRepo.GetProjectSettings(createProjectSettingsEvent.ProjectUID.ToString(), createProjectSettingsEvent.UserID, ProjectSettingsType.Unknown); single.Wait(); Assert.Null(single.Result); single = projectRepo.GetProjectSettings(createProjectSettingsEvent.ProjectUID.ToString(), createProjectSettingsEvent.UserID, ProjectSettingsType.ImportedFiles); single.Wait(); Assert.Null(single.Result); }
public void CreateProjectSettings_WrongUser() { var actionUTC = new DateTime(2017, 1, 1, 2, 30, 3); var projectUid = Guid.NewGuid().ToString(); string settings = TargetJsonString; var createProjectSettingsEvent = new UpdateProjectSettingsEvent() { ProjectUID = new Guid(projectUid), ProjectSettingsType = ProjectSettingsType.Targets, Settings = settings, UserID = Guid.NewGuid().ToString(), ActionUTC = actionUTC }; var s = projectRepo.StoreEvent(createProjectSettingsEvent); s.Wait(); Assert.Equal(1, s.Result); var g = projectRepo.GetProjectSettings(createProjectSettingsEvent.ProjectUID.ToString(), createProjectSettingsEvent.UserID); g.Wait(); Assert.NotNull(g.Result); var projectSettingsList = g.Result.ToList(); Assert.Single(projectSettingsList); g = projectRepo.GetProjectSettings(createProjectSettingsEvent.ProjectUID.ToString(), Guid.NewGuid().ToString()); g.Wait(); Assert.NotNull(g.Result); projectSettingsList = g.Result.ToList(); Assert.Empty(projectSettingsList); var single = projectRepo.GetProjectSettings(createProjectSettingsEvent.ProjectUID.ToString(), createProjectSettingsEvent.UserID, ProjectSettingsType.Targets); single.Wait(); Assert.NotNull(single.Result); single = projectRepo.GetProjectSettings(createProjectSettingsEvent.ProjectUID.ToString(), Guid.NewGuid().ToString(), ProjectSettingsType.Targets); single.Wait(); Assert.Null(single.Result); }