private void UpadteDispensary(PendingDispensaryModel pendingDispensary)
        {
            var entity = HGContext.PendingDispensaries.SingleOrDefault(d => d.Id == pendingDispensary.Id);


            entity.Id                      = pendingDispensary.Id;
            entity.AddressId               = pendingDispensary.AddressId;
            entity.Email                   = pendingDispensary.Email;
            entity.Name                    = pendingDispensary.Name;
            entity.PhoneNumber             = pendingDispensary.PhoneNumber;
            entity.PendingDispensaryStatus = PendingDispensaryStatus.WaitingForApprove;
            entity.Type                    = pendingDispensary.Type;
            entity.Website                 = pendingDispensary.Website;
            HGContext.Entry(entity).State  = EntityState.Modified;

            var address = HGContext.Addresses.SingleOrDefault(a => a.Id == pendingDispensary.Id);

            if (address != null)
            {
                address.Address1 = pendingDispensary.Address.Address1;
                address.Address2 = pendingDispensary.Address.Address2;
                address.City     = pendingDispensary.Address.City;
                address.State    = pendingDispensary.Address.State;
                address.Zip      = pendingDispensary.Address.Zip;
                address.Country  = pendingDispensary.Address.Country;
                HGContext.Entry(address).State = EntityState.Modified;
            }

            HGContext.SaveChanges();
        }
        public async Task <HttpResponseMessage> Approve(int id)
        {
            var dispensary = await HGContext.PendingDispensaries.Include(d => d.Address).SingleOrDefaultAsync(d => d.Id == id);

            dispensary.PendingDispensaryStatus = PendingDispensaryStatus.Approved;
            HGContext.Entry(dispensary).State  = EntityState.Modified;

            var password = new Random().Next(100000, 999999);
            var guid     = Guid.NewGuid().ToString();
            var idresult = await UserManager.CreateAsync(new User
            {
                Email     = dispensary.Email,
                UserName  = dispensary.Email,
                Guid      = guid,
                Zipcode   = dispensary.Address == null ? null : dispensary.Address.Zip,
                CreatedAt = DateTimeOffset.UtcNow,
                UpdatedAt = DateTimeOffset.UtcNow,
                LastLogin = DateTimeOffset.UtcNow
            }, password.ToString());

            if (idresult.Succeeded)
            {
                var user = await UserManager.FindByEmailAsync(dispensary.Email);

                await UserManager.AddToRoleAsync(user.Id, Role.DispensaryManager);

                await HGContext.SaveChangesAsync();
                await SendVerificationEmail(dispensary.Email, "Your requset has been approved, your password for login is " + password, "Dispensary approved");

                return(Request.CreateResponse(HttpStatusCode.OK, dispensary));
            }

            return(Request.CreateResponse(HttpStatusCode.BadRequest));
        }
Пример #3
0
        public async Task <HttpResponseMessage> UpdateAddressInfo(AddressModel model)
        {
            try
            {
                using (HGContext context = new HGContext())
                {
                    var user =
                        await
                        context.Users.Include(u => u.Address)
                        .SingleOrDefaultAsync(u => u.Email == User.Identity.Name);

                    if (user.Address == null)
                    {
                        user.Address = new Address();
                    }
                    user.Address.Address1     = model.Address1;
                    user.Address.Address2     = model.Address2;
                    user.Address.City         = model.City;
                    user.Address.State        = model.State;
                    context.Entry(user).State = EntityState.Modified;
                    await context.SaveChangesAsync();

                    return(Request.CreateResponse(HttpStatusCode.OK));
                }
            }
            catch
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
        }
Пример #4
0
        public async Task <HttpResponseMessage> UpdateStateInfo(PatientInfoModel model)
        {
            List <string> errors = new List <string>();

            if (!ModelState.IsValid)
            {
                errors.AddRange(ModelState.Keys.SelectMany(k => ModelState[k].Errors).Select(m => m.ErrorMessage).ToList());
                return(Request.CreateResponse(HttpStatusCode.BadRequest, errors));
            }
            try
            {
                using (HGContext context = new HGContext())
                {
                    var user =
                        await
                        context.Users.Include(u => u.PatientInfo)
                        .SingleOrDefaultAsync(u => u.Email == User.Identity.Name);

                    user.PatientInfo.MedicalCardNumber         = model.MedicalCardNumber;
                    user.PatientInfo.MedicalCardExpirationDate = model.MedicalCardExpirationDate;
                    user.PatientInfo.ApprovalStatus            = ApproalStatus.APPLIED;
                    context.Entry(user).State = EntityState.Modified;
                    await context.SaveChangesAsync();

                    return(Request.CreateResponse(HttpStatusCode.OK));
                }
            }
            catch
            {
                errors.Add("An error has occured while saving.");
                return(Request.CreateResponse(HttpStatusCode.BadRequest, errors.ToArray()));
            }
        }
        public async Task <HttpResponseMessage> UpdatePendingDispensaryLicense([FromBody] PendingDispensaryModel pendingDispensary)
        {
            var dispensary = await HGContext.PendingDispensaries.FindAsync(pendingDispensary.Id);

            dispensary.IdNumber               = pendingDispensary.IdNumber;
            dispensary.ExperationDate         = pendingDispensary.ExperationDate;
            HGContext.Entry(dispensary).State = EntityState.Modified;
            await HGContext.SaveChangesAsync();

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
        public async Task <HttpResponseMessage> Reject(int id)
        {
            var dispensary = await HGContext.PendingDispensaries.SingleOrDefaultAsync(d => d.Id == id);

            dispensary.PendingDispensaryStatus = PendingDispensaryStatus.Rejected;
            HGContext.Entry(dispensary).State  = EntityState.Modified;
            await HGContext.SaveChangesAsync();

            await SendVerificationEmail(dispensary.Email, "Your requset has been rejected", "Dispensary rejected");

            return(Request.CreateResponse(HttpStatusCode.OK, dispensary));
        }
        public async Task <HttpResponseMessage> UpdatePendingDispensaryDocuments([FromBody] PendingDispensaryModel pendingDispensary)
        {
            var dispensary = await HGContext.PendingDispensaries.FindAsync(pendingDispensary.Id);

            dispensary.DriversLicenseImageUrl  = pendingDispensary.DriversLicenseImageUrl;
            dispensary.RecommendationImageUrl  = pendingDispensary.RecommendationImageUrl;
            dispensary.PendingDispensaryStatus = PendingDispensaryStatus.WaitingForApprove;
            HGContext.Entry(dispensary).State  = EntityState.Modified;
            await HGContext.SaveChangesAsync();

            await SendVerifyEmaiForSuperAdminAccounts(dispensary);

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
Пример #8
0
        public async Task <HttpResponseMessage> UpdateUserDocuments(PatientInfoModel model)
        {
            var user =
                await
                HGContext.Users.Include(u => u.PatientInfo)
                .SingleOrDefaultAsync(u => u.Email == User.Identity.Name);

            user.PatientInfo.DriversLicenseImageUrl = model.DriversLicenseImageUrl;
            user.PatientInfo.RecommendationImageUrl = model.RecommendationImageUrl;
            HGContext.Entry(user).State             = EntityState.Modified;
            await HGContext.SaveChangesAsync();

            return(Request.CreateResponse(HttpStatusCode.OK));
        }
Пример #9
0
        public async Task <HttpResponseMessage> ShowDispensary([FromUri] int id)
        {
            try
            {
                var dispensary = await HGContext.Dispensaries.SingleOrDefaultAsync(d => d.Id == id && !d.IsDeleted);

                dispensary.IsHidden = false;
                HGContext.Entry(dispensary).State = EntityState.Modified;
                await HGContext.SaveChangesAsync();

                return(Request.CreateResponse(HttpStatusCode.OK));
            }
            catch (Exception)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest));
            }
        }
Пример #10
0
 public async Task<HttpResponseMessage> UpdateAddressInfo(AddressModel model)
 {
     try
     {
         using (HGContext context = new HGContext())
         {
             var user =
                 await
                     context.Users.Include(u => u.Address)
                         .SingleOrDefaultAsync(u => u.Email == User.Identity.Name);
             if (user.Address == null)
             {
                 user.Address = new Address();
             }
             user.Address.Address1 = model.Address1;
             user.Address.Address2 = model.Address2;
             user.Address.City = model.City;
             user.Address.State = model.State;
             context.Entry(user).State = EntityState.Modified;
             await context.SaveChangesAsync();
             return Request.CreateResponse(HttpStatusCode.OK);
         }
     }
     catch
     {
         return Request.CreateResponse(HttpStatusCode.BadRequest);
     }
 }
Пример #11
0
 public async Task<HttpResponseMessage> UpdateStateInfo(PatientInfoModel model)
 {
     List<string> errors = new List<string>();
     if (!ModelState.IsValid)
     {
         errors.AddRange(ModelState.Keys.SelectMany(k => ModelState[k].Errors).Select(m => m.ErrorMessage).ToList());
         return Request.CreateResponse(HttpStatusCode.BadRequest, errors);
     }
     try
     {
         using (HGContext context = new HGContext())
         {
             var user =
                 await
                     context.Users.Include(u => u.PatientInfo)
                         .SingleOrDefaultAsync(u => u.Email == User.Identity.Name);
             user.PatientInfo.MedicalCardNumber = model.MedicalCardNumber;
             user.PatientInfo.MedicalCardExpirationDate = model.MedicalCardExpirationDate;
             user.PatientInfo.ApprovalStatus = ApproalStatus.APPLIED;
             context.Entry(user).State = EntityState.Modified;
             await context.SaveChangesAsync();
             return Request.CreateResponse(HttpStatusCode.OK);
         }
     }
     catch
     {
         errors.Add("An error has occured while saving.");
         return Request.CreateResponse(HttpStatusCode.BadRequest, errors.ToArray());
     }
 }