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);
        }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
        public Tenant RegisterTenant(PersonContactInfo contactInfo, string unitNumber)
        {
            var tenant = new Tenant(this, contactInfo, unitNumber);

            _validationService.Validate(tenant);

            return(tenant);
        }
Esempio n. 4
0
 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));
        }