Example #1
0
        public async Task TenantSaveDataTest()
        {
            using var store   = GetDocumentStore();
            using var session = store.OpenAsyncSession();
            var model = TenantData.GetSecond();

            var persist = new TenantSave {
                Session = session, Model = model
            };
            await persist.Execute();

            persist.Confirm.Should().NotBeNull();
            persist.Confirm.Identity.Should().Be(model.Id);
            persist.Confirm.Success.Should().BeTrue();
            Assert.That(persist.Model, Is.DeepEqualTo(model));
        }
Example #2
0
        public override async Task <IActionResult> Post([FromBody] TenantViewModel viewModel)
        {
            var name = string.Empty;

            if (!string.IsNullOrEmpty(viewModel.Id))
            {
                var original = await Load(viewModel.Id);

                name = original.Name;
            }

            var model = await Parse(viewModel);

            if (AuthoriseWrite(model))
            {
                if (string.IsNullOrEmpty(model.Id))
                {
                    model.AuthorId   = CurrentUser.Id;
                    model.AuthorName = CurrentUser.Name;
                    model.EntryKey   = StringHelper.GenerateCode(10).ToLower();
                }

                var image = new CheckProfileImage {
                    Model = model
                };
                await LogicHandler.Execute(image);

                var persist = new TenantSave {
                    Model = model, Original = name
                };
                await DataHandler.Execute(persist);

                if (persist.Confirm.Success)
                {
                    await DataHandler.Commit();
                }

                return(Ok(ConfirmViewModel.CreateFromConfirm(persist.Confirm)));
            }

            return(Unauthorized());
        }