public static TenantRequestDocModel BuildModel(this RegisterTenantRequestCommand tenantRequest) { return(new TenantRequestDocModel() { Title = tenantRequest.Title }); }
public void Validate(RegisterTenantRequestCommand tenantRequestCommand) { var results = _validationRulesService.Validate(tenantRequestCommand); if (!results.IsValid) { throw new DomainValidationException("tenantRequestDoc_validation", results.Errors); } }
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)); }