Esempio n. 1
0
 public static TenantRequestDocModel BuildModel(this RegisterTenantRequestCommand tenantRequest)
 {
     return(new TenantRequestDocModel()
     {
         Title = tenantRequest.Title
     });
 }
Esempio n. 2
0
        public void Validate(RegisterTenantRequestCommand tenantRequestCommand)
        {

            var results = _validationRulesService.Validate(tenantRequestCommand);
            if (!results.IsValid)
            {
                throw new DomainValidationException("tenantRequestDoc_validation", results.Errors);
            }
        }
Esempio n. 3
0
        public TenantRequest AddRequest(RegisterTenantRequestCommand registerTenantRequestCommand)
        {
            _validationService.Validate(registerTenantRequestCommand);
            RequestsNum++;
            var tTenantRequest = new TenantRequest(this, (RequestsNum).ToString());

            tTenantRequest.ExecuteCommand(registerTenantRequestCommand);

            return(tTenantRequest);
        }
        public async Task <IActionResult> CreateRequest(RegisterTenantRequestCommand requestCommand)
        {
            var loggedUser = await _authService.GetUserClaims(User);

            if (!loggedUser.IsRegisteredTenant())
            {
                return(base.RedirectToAction(actionName: nameof(this.Register), controllerName: "Tenant"));
            }

            if (!ModelState.IsValid)
            {
                return(View(requestCommand));
            }

            try
            {
                await _propertyService.RegisterTenantRequestAsync(loggedUser.PropCode, loggedUser.UnitNumber,
                                                                  new RegisterTenantRequestCommand()
                {
                    Title = requestCommand.Title, Description = requestCommand.Description
                });

                return(RedirectToAction(nameof(Requests)));
            }
            catch (CoreAuthorizationException)
            {
                return(base.RedirectToAction(actionName: "AccessDenied", controllerName: "Home"));
            }
            catch (DomainValidationException vex)
            {
                MapValidationErrorsToModel(vex);
            }
            catch (DomainException dex)
            {
                ModelState.AddModelError("", dex.Message);
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("", ex.Message);
                return(View(requestCommand));
            }

            return(View(requestCommand));
        }
        public async Task <TenantRequest> RegisterTenantRequestAsync(string propCode, string tenantUnit,
                                                                     RegisterTenantRequestCommand tenantRequestDoc)
        {
            GetClaims().Check(() => GetClaims().IsRegisteredTenant(propCode, tenantUnit));
            _validationService.ValidatePropertyCode(propCode);
            _validationService.ValidatePropertyUnit(tenantUnit);

            var tenant = _propertyRepository.GetTenantByUnitNumber(tenantUnit, propCode);

            if (tenant == null)
            {
                return(null);
            }
            var tenantRequest = tenant.AddRequest(tenantRequestDoc);

            _propertyRepository.AddTenantRequest(tenantRequest);

            await _notifyPartiesService.CreateAndSendEmailAsync(tenantRequest);

            return(tenantRequest);
        }
        public ValidationResult Validate(RegisterTenantRequestCommand tenantRequestDoc)
        {
            var validator = new RegisterTenantRequestCommandValidator();

            return(validator.Validate(tenantRequestDoc));
        }