public async Task <Tenant> RegisterTenantAsync(string propertyCode, PersonContactInfo contactInfo, string unitNumber) { await Task.CompletedTask; //_authService.Check(() => _authService.IsAuthenticatedTenant()); _validationService.ValidatePropertyCode(propertyCode); _validationService.ValidatePropertyUnit(unitNumber); _validationService.Validate(contactInfo); var property = _propertyRepository.GetPropertyByCode(propertyCode); if (property == null) { throw new DomainEntityNotFoundException("property_not_found", "property not found"); } var tenant = _propertyRepository.GetTenantByUnitNumber(unitNumber, propertyCode); if (tenant != null) { throw new DomainEntityDuplicateException("duplicate_tenant", "duplicate tenant"); } tenant = property.RegisterTenant(contactInfo, unitNumber); _propertyRepository.AddTenant(tenant); await _authService.SetUserClaims(GetClaims().Login, UserRolesEnum.Tenant, propertyCode, unitNumber); return(tenant); }
public Tenant(Property property, PersonContactInfo contactInfo, string unitNumber, DateTime?dateCreated = null, Guid?id = null) : base(dateCreated, id) { Property = property; PropertyCode = property.Code; ContactInfo = contactInfo; UnitNumber = unitNumber; }
public Tenant RegisterTenant(PersonContactInfo contactInfo, string unitNumber) { var tenant = new Tenant(this, contactInfo, unitNumber); _validationService.Validate(tenant); return(tenant); }
public void Validate(PersonContactInfo personContactInfo) { var results = _validationRulesService.Validate(personContactInfo); if (!results.IsValid) { throw new DomainValidationException("personContactInfo_validation", results.Errors); } }
// GET api/ContactsApi/5 public IHttpActionResult GetPersonContactInfo(int id) { PersonContactInfo personcontactinfo = db.PersonContacts.Find(id); if (personcontactinfo == null) { return(NotFound()); } return(Ok(Mapper.Map <PersonContactInfo, ContactDto>(personcontactinfo))); }
public async Task <Worker> RegisterWorkerAsync(PersonContactInfo workerInfo) { await Task.CompletedTask; //_authService.Check(() => _authService.IsRegisteredWorker()); var worker = new Worker(workerInfo); _propertyRepository.AddWorker(worker); await _authService.SetUserClaims(GetClaims().Login, UserRolesEnum.Worker, null, null); return(worker); }
public IHttpActionResult DeletePersonContactInfo(int id) { PersonContactInfo personContactInfo = db.PersonContacts.Find(id); if (personContactInfo == null) { return(NotFound()); } db.PersonContacts.Remove(personContactInfo); db.SaveChanges(); return(Ok(Mapper.Map <PersonContactInfo, ContactDto>(personContactInfo))); }
// GET: /ContactManager/Edit/5 public ActionResult Edit(int?id) { if (id == null) { return(View()); } PersonContactInfo personcontactinfo = db.PersonContacts.Find(id); if (personcontactinfo == null) { return(HttpNotFound()); } return(View(personcontactinfo)); }
public async Task <Unit> Handle(UpdatePersonContactInfoWithoutSavingCommand request, CancellationToken cancellationToken) { var contactTypes = await request._mediator.Send(new GetGeneralTypesListQuery((int)GeneralTypeEnum.GeneralTypeParents.ContactType), cancellationToken); foreach (var item in contactTypes) { var personContactInfo = new PersonContactInfo(); switch (item.Title) { case "Mobile": personContactInfo = new PersonContactInfo { Id = request.Model.MobileId, PersonId = request.PersonId, ContactTypeId = contactTypes.SingleOrDefault(m => m.Title == "Mobile").Id, Content = request.Model.Mobile, RowVersion = request.Model.MobileRowVersion }; break; case "Email": personContactInfo = new PersonContactInfo { Id = request.Model.EmailId, PersonId = request.PersonId, ContactTypeId = contactTypes.SingleOrDefault(m => m.Title == "Email").Id, Content = request.Model.Email, RowVersion = request.Model.EmailRowVersion }; break; case "Facebook": personContactInfo = new PersonContactInfo { Id = request.Model.FacebookId, PersonId = request.PersonId, ContactTypeId = contactTypes.SingleOrDefault(m => m.Title == "Facebook").Id, Content = request.Model.Facebook, RowVersion = request.Model.FacebookRowVersion }; break; case "Instagram": personContactInfo = new PersonContactInfo { Id = request.Model.InstagramId, PersonId = request.PersonId, ContactTypeId = contactTypes.SingleOrDefault(m => m.Title == "Instagram").Id, Content = request.Model.Instagram, RowVersion = request.Model.InstagramRowVersion }; break; case "Twitter": personContactInfo = new PersonContactInfo { Id = request.Model.TwitterId, PersonId = request.PersonId, ContactTypeId = contactTypes.SingleOrDefault(m => m.Title == "Twitter").Id, Content = request.Model.Twitter, RowVersion = request.Model.TwitterRowVersion }; break; case "Web": personContactInfo = new PersonContactInfo { Id = request.Model.WebId, PersonId = request.PersonId, ContactTypeId = contactTypes.SingleOrDefault(m => m.Title == "Web").Id, Content = request.Model.Web, RowVersion = request.Model.WebRowVersion }; break; } try { if (personContactInfo.Id == 0 && !string.IsNullOrWhiteSpace(personContactInfo.Content)) { DataContext.PersonContactInfos.Add(personContactInfo); } else if (personContactInfo.Id != 0 && string.IsNullOrWhiteSpace(personContactInfo.Content)) { DataContext.PersonContactInfos.Attach(personContactInfo).State = EntityState.Deleted; } else if (personContactInfo.Id != 0 && !string.IsNullOrWhiteSpace(personContactInfo.Content)) { DataContext.PersonContactInfos.Attach(personContactInfo).State = EntityState.Modified; } } catch (DbUpdateConcurrencyException ex) { throw ex; } } return(Unit.Value); }
public Worker(PersonContactInfo contactInfo, DateTime?dateCreated = null, Guid?id = null) : base(dateCreated, id) { _validationService.Validate(contactInfo); PersonContactInfo = contactInfo; }
public void WithPerson(PersonContactInfo personContact) { this.person = personContact; NotifyOfPropertyChange(() => FirstName); NotifyOfPropertyChange(() => LastName); }
public ValidationResult Validate(PersonContactInfo personContactInfo) { var validator = new PersonContactInfoValidator(); return(validator.Validate(personContactInfo)); }