Example #1
0
        public ActionResult Index(NotificationModel entity)
        {
            var currentUserId = User.Identity.GetUserId <int>();
            var model         = db.UserNotificationMappers.FirstOrDefault(a => a.NotificationTypeId == entity.NotificationTypeId & a.UserId == currentUserId);

            if (model != null)
            {
                if (entity.Status != null)
                {
                    model.Status    = entity.Status;
                    model.UpdatedBy = currentUserId;
                    model.UpdatedOn = DateTime.UtcNow;
                }
                db.SaveChanges();
            }
            else
            {
                db.UserNotificationMappers.Add(new UserNotificationMapper
                {
                    UserId             = currentUserId,
                    NotificationTypeId = entity.NotificationTypeId,
                    Status             = entity.Status,
                    CreatedBy          = currentUserId,
                    CreatedOn          = DateTime.UtcNow
                });
                db.SaveChanges();
            }
            return(Json(true));
        }
 public ActionResult Create([Bind(Include = "Id,Title,CreatedOn,CreatedBy,UpdatedOn,UpdatedBy,NotificationKey")] LookupNotificationType lookupNotificationType)
 {
     if (ModelState.IsValid)
     {
         lookupNotificationType.CreatedBy = CurrentUser.Id;
         lookupNotificationType.CreatedOn = DateTime.UtcNow;
         db.LookupNotificationTypes.Add(lookupNotificationType);
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(lookupNotificationType));
 }
        public ActionResult Create([Bind(Include = "Id,ColumnName,IsVisible,ServiceId,ColumnOrder")] ReportStaticColumnConfig reportStaticColumnConfig)
        {
            if (ModelState.IsValid)
            {
                db.ReportStaticColumnConfigs.Add(reportStaticColumnConfig);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            ViewBag.ServiceId = new SelectList(db.LookupEnrolledServices, "Id", "ServiceName", reportStaticColumnConfig.ServiceId);
            return(View(reportStaticColumnConfig));
        }
Example #4
0
        public async Task <ActionResult> Index(ViewModel model)
        {
            int businessId    = model.BusinessId,
                currentUserId = CurrentUser.Id;

            if (ModelState.IsValid)
            {
                using (MemoryStream memoryStream = new MemoryStream())
                {
                    model.File.InputStream.CopyTo(memoryStream);
                }

                if (model.File != null)
                {
                    string filePath = Server.MapPath(Path.Combine("~/Assets", businessId.ToString(), "Sales", "Sales-Archives", "Uploads", "Imports"));
                    if (!Directory.Exists(filePath))
                    {
                        Directory.CreateDirectory(filePath);
                    }
                    string excelFile = Path.Combine(filePath, string.Format("{0}.{1}", DateTime.Now.ToString("MMddyyhhmmssttfff"), "xlsx"));

                    model.File.SaveAs(excelFile);

                    int         RecordCount;
                    XmlDocument xmlDocument = new XmlDocument();
                    using (StreamReader sr = new StreamReader(excelFile))
                    {
                        Stream ExcelStream = sr.BaseStream;
                        xmlDocument.LoadXml(new ExcelToXml().GetXMLString(ref ExcelStream, true, out RecordCount));
                        IEnumerable <XElement> xElements = xmlDocument.ToXDocument().Descendants("RowItem");

                        var accountData = xElements.Select(u =>
                                                           new AccountModel
                        {
                            PracticeName      = (string)u.Element("PracticeName"),
                            AddressLine1      = (string)u.Element("AddressLine1"),
                            AddressLine2      = (string)u.Element("AddressLine2"),
                            City              = (string)u.Element("City"),
                            State             = (string)u.Element("State"),
                            ZipCode           = (string)u.Element("ZipCode"),
                            PhoneNumber       = (string)u.Element("PhoneNumber"),
                            ReportDeliveryFax = (string)u.Element("ReportDeliveryFax"),
                            EnrolledServices  = (string)u.Element("EnrolledServices"),
                            NPI       = (string)u.Element("NPI"),
                            SalesTeam = (string)u.Element("SalesTeam"),
                            SalesRep  = (string)u.Element("SalesRep"),
                        });

                        foreach (var item in accountData)
                        {
                            try
                            {
                                using (CareConnectCrmEntities DBEntity = new CareConnectCrmEntities())
                                {
                                    #region Genrarate PracticeProviderMapper

                                    List <PracticeProviderMapper> oPracticeProviderMappers = new List <PracticeProviderMapper>();
                                    var provider   = DBEntity.Providers.FirstOrDefault(a => a.NPI == item.NPI);
                                    int providerId = provider != null ? provider.Id : 0;
                                    if (providerId > 0)
                                    {
                                        oPracticeProviderMappers.Add(new PracticeProviderMapper
                                        {
                                            AddressIndex = 1,
                                            ProviderId   = providerId,
                                            CreatedBy    = currentUserId,
                                            CreatedOn    = DateTime.UtcNow
                                        });
                                        item.HasProvider = true;
                                    }
                                    else
                                    {
                                        dynamic obj = null;
                                        using (HttpClient httpClient = new HttpClient())
                                        {
                                            var json = await GetObjectsAsync(item.NPI);

                                            var serializer = new JavaScriptSerializer();
                                            serializer.RegisterConverters(new[] { new DynamicJsonConverter() });

                                            obj = serializer.Deserialize(json.ToString(), typeof(object));
                                        }

                                        int resultCount = 0;
                                        var s           = obj.result_count;
                                        int.TryParse(Convert.ToString(obj.result_count), out resultCount);
                                        if (resultCount > 0)
                                        {
                                            oPracticeProviderMappers.Add(new PracticeProviderMapper
                                            {
                                                AddressIndex = 1,
                                                Provider     = new Provider
                                                {
                                                    FirstName  = obj.results[0].basic.first_name,
                                                    MiddleName = obj.results[0].basic.middle_name,
                                                    LastName   = obj.results[0].basic.last_name,
                                                    IsActive   = true,
                                                    NPI        = item.NPI,
                                                    CreatedBy  = currentUserId,
                                                    CreatedOn  = DateTime.UtcNow,
                                                },
                                                CreatedBy = currentUserId,
                                                CreatedOn = DateTime.UtcNow
                                            });
                                            item.HasProvider = true;
                                        }
                                    }

                                    #endregion

                                    #region Genrarate PracticeServiceMapper

                                    List <PracticeServiceMapper> oPracticeServiceMapper = new List <PracticeServiceMapper>();

                                    var services = DBEntity.LookupEnrolledServices.Where(a => a.BusinessId == businessId).ToList();

                                    if (services != null && services.Count() > 0)
                                    {
                                        foreach (var serviceItem in services)
                                        {
                                            oPracticeServiceMapper.Add(new PracticeServiceMapper
                                            {
                                                EnrolledServiceId = Convert.ToInt32(serviceItem.Id),
                                                CreatedBy         = currentUserId,
                                                CreatedOn         = DateTime.UtcNow
                                            });
                                        }
                                    }

                                    #endregion

                                    if (!string.IsNullOrEmpty(item.SalesRep))
                                    {
                                        string salesRep = item.SalesRep.Replace(" ", ""),
                                               repGroup = item.SalesTeam.Replace(" ", "");

                                        var objRep = DBEntity.Reps.Where(a => a.User2.BusinessId == businessId && (a.User2.FirstName.Trim() + a.User2.MiddleName.Trim() + a.User2.LastName.Trim()).Contains(salesRep) && a.RepGroup.RepGroupName.Replace(" ", "").Trim() == repGroup).ToList();
                                        if (objRep.Count == 1)
                                        {
                                            item.RepId = objRep.FirstOrDefault().Id;
                                        }
                                    }

                                    if (!string.IsNullOrEmpty(item.State))
                                    {
                                        string stateCode = item.State.Trim();
                                        var    objState  = DBEntity.LookupStates.Where(a => a.StateCode == stateCode).ToList();
                                        if (objState.Count == 1)
                                        {
                                            item.StateId = objState.FirstOrDefault().Id;
                                        }
                                    }

                                    if (item.RepId <= 0 || item.StateId <= 0 || !item.HasProvider.HasValue)
                                    {
                                        //if (!TryValidateModel(item))
                                        //{
                                        model.FailedRecords.Add(item);
                                        continue;
                                        //}
                                    }

                                    #region Accounts

                                    var accountModel = new Account
                                    {
                                        IsActive   = true,
                                        BusinessId = businessId,
                                        Lead       = new Lead
                                        {
                                            IsConverted = true,
                                            IsActive    = true,
                                            RepId       = item.RepId,
                                            LeadStatus  = (int)LeadStatus.Transacted,
                                            BusinessId  = businessId,
                                            Practice    = new Practice
                                            {
                                                ReportDeliveryFax      = item.ReportDeliveryFax,
                                                RepId                  = item.RepId,
                                                PracticeName           = item.PracticeName,
                                                BusinessId             = businessId,
                                                PracticeAddressMappers = new List <PracticeAddressMapper> {
                                                    new PracticeAddressMapper
                                                    {
                                                        Address = new Address
                                                        {
                                                            AddressIndex  = 1,
                                                            Line1         = item.AddressLine1,
                                                            Line2         = item.AddressLine2,
                                                            City          = item.City,
                                                            Zip           = item.ZipCode,
                                                            AddressTypeId = (int)AddressType.Primary,
                                                            StateId       = item.StateId.HasValue ? item.StateId.Value : 0,
                                                            CreatedBy     = currentUserId,
                                                            CreatedOn     = DateTime.UtcNow,
                                                            Phones        = new List <Phone>
                                                            {
                                                                new Phone
                                                                {
                                                                    PhoneNumber = item.PhoneNumber,
                                                                    PhoneTypeId = 1,
                                                                    CreatedOn   = DateTime.UtcNow,
                                                                    CreatedBy   = currentUserId
                                                                }
                                                            },
                                                        },
                                                        CreatedBy = currentUserId,
                                                        CreatedOn = DateTime.UtcNow,
                                                    }
                                                },
                                                PracticeProviderMappers = oPracticeProviderMappers,
                                                PracticeServiceMappers  = oPracticeServiceMapper,
                                                CreatedOn = DateTime.UtcNow,
                                                CreatedBy = currentUserId
                                            },
                                            CreatedOn = DateTime.UtcNow,
                                            CreatedBy = currentUserId
                                        },
                                        CreatedOn = DateTime.UtcNow,
                                        CreatedBy = currentUserId
                                    };

                                    accountModel = DBEntity.Accounts.Add(accountModel);

                                    #endregion

                                    if (DBEntity.SaveChanges() > 0)
                                    {
                                        #region Practice Provider Address Mapper

                                        accountModel.Lead.Practice.PracticeProviderMappers.ToList().ForEach(s =>
                                                                                                            DBEntity.PracticeProviderLocationMappers.Add(new PracticeProviderLocationMapper
                                        {
                                            PracticeId = accountModel.Lead.Practice.Id,
                                            ProviderId = s.ProviderId,
                                            AddressId  = s.Practice.PracticeAddressMappers
                                                         .FirstOrDefault(f => f.Address.AddressIndex == s.Practice.PracticeProviderMappers
                                                                         .FirstOrDefault(d => d.Provider.Id == s.ProviderId).AddressIndex).AddressId,
                                            CreatedBy = currentUserId,
                                            CreatedOn = DateTime.UtcNow
                                        }));

                                        #endregion

                                        DBEntity.SaveChanges();
                                    }
                                    else
                                    {
                                        model.FailedRecords.Add(item);
                                    }
                                }
                            }
                            catch (System.Data.Entity.Validation.DbEntityValidationException e)
                            {
                                foreach (var eve in e.EntityValidationErrors)
                                {
                                    foreach (var ve in eve.ValidationErrors)
                                    {
                                        string s = string.Format("- Property: \"{0}\", Error: \"{1}\"", ve.PropertyName, ve.ErrorMessage);
                                    }
                                }
                            }
                            catch (Exception ex)
                            {
                                model.FailedRecords.Add(item);
                                ex.Log();
                            }
                        }

                        ExcelStream.Close();
                    };
                }
            }
            return(View(model));
        }
Example #5
0
        public async Task <IHttpActionResult> CreateBusiness(BusinessMasterModel model)
        {
            var response = new DataResponse <EntityBusinessMaster>();

            var userManager = System.Web.HttpContext.Current.GetOwinContext().GetUserManager <GMUserManager>();
            var roleManager = System.Web.HttpContext.Current.GetOwinContext().Get <GMRoleManager>();

            if (ModelState.IsValid)
            {
                if (db.BusinessMasters.Any(a => a.BusinessName.ToLower() == model.BusinessName.ToLower()))
                {
                    var error = string.Format("{0} is already used.", model.BusinessName);
                    return(Ok <dynamic>(new { Status = HttpStatusCode.BadRequest, Model = error }));
                }

                model.Password = GeneralHelpers.GeneratePassword(3, 2, 2);
                var user = new GMUser
                {
                    FirstName   = model.FirstName,
                    MiddleName  = model.MiddleName,
                    LastName    = model.LastName,
                    PhoneNumber = model.PhoneNumber,
                    UserName    = model.Email,
                    Email       = model.Email,
                    IsActive    = true,
                };
                IdentityResult result = await UserManager.CreateAsync(user, model.Password);

                if (result.Succeeded)
                {
                    var roleName = "BusinessAdmin";
                    var role     = roleManager.FindByName(roleName);
                    if (role == null)
                    {
                        db.Roles.Add(new Role {
                            Name = roleName, Description = roleName, IsActive = true, CreatedBy = 1, CreatedOn = System.DateTime.UtcNow
                        });
                        db.SaveChanges();
                    }
                    UserManager.AddToRolesAsync(user.Id, roleName);
                }
                else
                {
                    var error = string.Format("{0} is already used.", model.Email);
                    return(Ok <dynamic>(new { Status = HttpStatusCode.BadRequest, Model = error }));
                }

                var entityBusinessProfile = new EntityBusinessMaster();
                entityBusinessProfile.BusinessName = model.BusinessName;
                entityBusinessProfile.RelativeUrl  = model.BusinessName.ToLower().Replace(" ", "-");
                entityBusinessProfile.Description  = model.Description;
                entityBusinessProfile.CreatedBy    = 1;
                response = repository.Insert(entityBusinessProfile);

                if (response.Model.Id > 0)
                {
                    var userDetails = db.Users.FirstOrDefault(a => a.Id == user.Id);
                    userDetails.UserProfiles.Add(new UserProfile {
                        CreatedBy = 1, CreatedOn = DateTime.UtcNow, UserId = userDetails.Id
                    });
                    userDetails.BusinessId = response.Model.Id;
                    db.SaveChanges();

                    model.RootPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
                    string ReturnUrl = ConfigurationManager.AppSettings["BaseUrl"];
                    ReturnUrl = ReturnUrl + model.BusinessName.Replace(" ", "-");
                    string RelativeUrl = model.BusinessName.ToLower().Replace(" ", "-");

                    string managerEmailBody = string.Empty;
                    var    mail             = new GMEmail();
                    managerEmailBody = TemplateManager.NewBusinessCreate(model.RootPath, model.BusinessName, user.UserName, model.Password, model.FirstName, ReturnUrl, response.Model.Id, RelativeUrl);
                    mail.SendDynamicHTMLEmail(model.Email, "New Business Created", managerEmailBody, CurrentUser.OtherEmails);

                    //string rootPath = ConfigurationManager.AppSettings["FolderPath"];
                    string        rootPath = HttpContext.Current.Server.MapPath("~/Assets");
                    string        path     = Path.Combine(rootPath, response.Model.Id.ToString());
                    DirectoryInfo dir      = new DirectoryInfo(path);
                    if (!dir.Exists)
                    {
                        dir.Create();
                    }
                }
            }

            return(Ok <DataResponse>(response));
        }