Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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());
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }