public async Task <DataModel.Agreement> SignAgreement(int tenantId, int agreementId, DateTime startDate, DateTime endDate)
        {
            var agreement = await _context.Agreements
                            .Where(a => a.AgreementId == agreementId)
                            .FirstOrDefaultAsync();

            if (agreement == null)
            {
                return(null);
            }

            var signedAgreement = new SignedAgreement();

            signedAgreement.TenantId    = tenantId;
            signedAgreement.AgreementId = agreementId;
            signedAgreement.SignedDate  = DateTime.Now;
            signedAgreement.StartDate   = startDate;
            signedAgreement.EndDate     = endDate;

            _context.Add(signedAgreement);
            await _context.SaveChangesAsync();

            return(new DataModel.Agreement {
                AgreementId = signedAgreement.AgreementId,
                Title = agreement.Title,
                Text = agreement.Text,
                SignedDate = signedAgreement.SignedDate,
                StartDate = signedAgreement.StartDate,
                EndDate = signedAgreement.EndDate,
            });
        }
        public async Task <Entity.User> NewUser(DTO.UserDTO userInfo)
        {
            if (userInfo == null)
            {
                return(null);
            }
            if (String.IsNullOrEmpty(userInfo.Password))
            {
                return(null);
            }
            if (String.IsNullOrEmpty(userInfo.LoginName))
            {
                return(null);
            }

            var user = new Entity.User();

            user.FirstName       = userInfo.FirstName;
            user.LastName        = userInfo.LastName;
            user.LoginName       = userInfo.LoginName;
            user.Password        = Util.Hash.Sha256(userInfo.Password);
            user.UserAccountType = userInfo.UserAccountType;
            user.ApiKey          = Guid.NewGuid().ToString();

            await _context.AddAsync(user);

            await _context.SaveChangesAsync();

            return(user);
        }
Ejemplo n.º 3
0
        public async Task <Entity.User> NewUser(DTO.UserDTO userInfo)
        {
            var loginAlreadyExists = await _context.Users
                                     .Where(u => u.LoginName.ToLower() == userInfo.LoginName.ToLower())
                                     .CountAsync() > 0;

            if (loginAlreadyExists)
            {
                return(null);
            }

            if (userInfo == null)
            {
                return(null);
            }
            if (String.IsNullOrEmpty(userInfo.Password))
            {
                return(null);
            }
            if (String.IsNullOrEmpty(userInfo.LoginName))
            {
                return(null);
            }

            var user = new Entity.User();

            user.FirstName       = userInfo.FirstName;
            user.LastName        = userInfo.LastName;
            user.LoginName       = userInfo.LoginName;
            user.Password        = Util.Hash.Sha256(userInfo.Password);
            user.UserAccountType = userInfo.UserAccountType;
            user.ApiKey          = Guid.NewGuid().ToString();

            await _context.AddAsync(user);

            await _context.SaveChangesAsync();

            var tenant = await _context.Tenants
                         .Where(t => t.Email == user.LoginName)
                         .Select(t => t)
                         .FirstOrDefaultAsync();

            if (tenant == null)
            {
                return(null);
            }

            tenant.UserId = user.UserId;
            await _context.SaveChangesAsync();

            return(user);
        }
Ejemplo n.º 4
0
        public async Task <Entity.Agreement> UpdateAgreement(Entity.Agreement updated)
        {
            if (updated.StartDate != null && updated.EndDate != null)
            {
                if (updated.StartDate > updated.EndDate)
                {
                    return(null);
                }
            }

            var existingAgreement = await _context.Agreements
                                    .Where(a => a.AgreementId == updated.AgreementId)
                                    .Select(a => a)
                                    .FirstOrDefaultAsync();

            if (existingAgreement == null)
            {
                await _context.AddAsync(updated);

                await _context.SaveChangesAsync();

                return(updated);
            }
            else
            {
                existingAgreement.AgreementTemplateId = updated.AgreementTemplateId;
                if (updated.StartDate != null)
                {
                    existingAgreement.StartDate = updated.StartDate;
                }
                if (updated.EndDate != null)
                {
                    existingAgreement.EndDate = updated.EndDate;
                }
                if (updated.SignedDate != null)
                {
                    existingAgreement.SignedDate = updated.SignedDate;
                }
                existingAgreement.TenantId = updated.TenantId;

                await _context.SaveChangesAsync();

                return(await _context.Agreements
                       .Where(a => a.AgreementId == updated.AgreementId)
                       .Select(a => a)
                       .FirstOrDefaultAsync());
            }
        }
        public async Task <MaintenanceRequest> CancelMaintenanceRequest(int userWhoCanceled,
                                                                        int maintenanceRequestId,
                                                                        string resolutionNotes)
        {
            var maintenanceRequest = await GetMaintenanceRequest(maintenanceRequestId);

            if (maintenanceRequest == null)
            {
                return(null);
            }
            maintenanceRequest.ResolutionNotes = resolutionNotes;
            maintenanceRequest.TimeClosed      = DateTime.Now;
            maintenanceRequest.ClosingUserId   = userWhoCanceled;

            await _context.SaveChangesAsync();

            return(maintenanceRequest);
        }
Ejemplo n.º 6
0
        public async Task <DTO.TenantInfoDTO> AddTenant(DTO.TenantInfoDTO info)
        {
            var emailAlreadyExists = await _context.Tenants
                                     .Where(t => t.Email.ToLower() == info.Email.ToLower())
                                     .CountAsync() > 0;

            if (emailAlreadyExists)
            {
                return(null);
            }

            if (info == null)
            {
                return(null);
            }

            var tenant = new Tenant();

            tenant.FirstName   = info.FirstName;
            tenant.LastName    = info.LastName;
            tenant.Email       = info.Email;
            tenant.PhoneNumber = info.PhoneNumber;

            _context.Add(tenant);
            await _context.SaveChangesAsync();

            await AssignToUnit(tenant.TenantId, info.UnitNumber);

            await _context.SaveChangesAsync();

            return(new DTO.TenantInfoDTO(tenant, info.UnitNumber));
        }
Ejemplo n.º 7
0
        public async Task <DTO.TenantInfoDTO> AddTenant(DTO.TenantInfoDTO info)
        {
            if (info == null)
            {
                return(null);
            }

            var tenant = new Tenant();

            tenant.FirstName   = info.FirstName;
            tenant.LastName    = info.LastName;
            tenant.Email       = info.Email;
            tenant.PhoneNumber = info.PhoneNumber;

            _context.Add(tenant);

            await AssignToUnit(tenant.TenantId, info.UnitNumber);

            await _context.SaveChangesAsync();

            return(new DTO.TenantInfoDTO(tenant, info.UnitNumber));
        }
Ejemplo n.º 8
0
        public async Task <Entity.AgreementTemplate> UpdateAgreementTemplate(Entity.AgreementTemplate agreement)
        {
            var existingTemplate = await _context.AgreementTemplates
                                   .Where(a => a.AgreementTemplateId == agreement.AgreementTemplateId)
                                   .Select(a => a)
                                   .FirstOrDefaultAsync();

            if (existingTemplate == null)
            {
                await _context.AddAsync(agreement);

                await _context.SaveChangesAsync();

                return(agreement);
            }
            else
            {
                existingTemplate.Title = agreement.Title;
                existingTemplate.Title = agreement.Text;
                await _context.SaveChangesAsync();

                return(existingTemplate);
            }
        }
Ejemplo n.º 9
0
        public async Task <DataModel.Bill> PayBill(int tenantId,
                                                   double amount,
                                                   ResourceType resource,
                                                   BillingPeriod period)
        {
            if (period == null)
            {
                return(null);
            }

            var payment = new Payment();

            payment.Amount          = amount;
            payment.ResourceType    = resource;
            payment.BillingPeriodId = period.BillingPeriodId;
            payment.TenantId        = tenantId;
            payment.TimePaid        = DateTime.Now;

            await _context.AddAsync(payment);

            await _context.SaveChangesAsync();

            return(await GetBill(tenantId, resource, period));
        }