public IHttpActionResult Delete(int userid)
        {
            var repository = new RepositoryUsers();
            var response   = repository.Delete(userid);

            return(Ok <DataResponse>(response));
        }
        public IHttpActionResult ToggleStatus(int id)
        {
            var repository = new RepositoryUsers();
            var response   = repository.ToggleStatus(id);

            return(Ok <DataResponse>(response));
        }
        public IHttpActionResult GetUserById(int?Id)
        {
            var response   = new DataResponse <EntityUsers>();
            var repository = new RepositoryUsers();

            if (Id.HasValue)
            {
                response = repository.GetUserById(Id.Value);
            }
            else
            {
                response.Model = new EntityUsers();
            }
            return(Ok <DataResponse>(response));
        }
        public IHttpActionResult GetByFilter(FilterUsers filter)
        {
            var repository = new RepositoryUsers();

            if (filter == null)
            {
                filter = new FilterUsers {
                    PageSize = 25, CurrentPage = 1
                }
            }
            ;
            var response = repository.GetUsers(filter, CurrentBusinessId.Value);

            return(Ok <DataResponse <EntityList <EntityUsers> > >(response));
        }
        public IHttpActionResult GetPrivilegeById(int?UserId)
        {
            var response   = new DataResponse <EntityPrivileges>();
            var repository = new RepositoryUsers();

            if (UserId.HasValue)
            {
                response = repository.GetPrivilegeById(UserId.Value, CurrentBusinessId.Value);
            }
            else
            {
                response.Model = new EntityPrivileges();
            }
            return(Ok <DataResponse>(response));
        }
        public IHttpActionResult SetPrivileges(int?UserId, List <EBP.Business.Entity.Privileges.Privileges> entity)
        {
            var response   = new DataResponse <VMPrivilege>();
            var repository = new RepositoryUsers();

            response = repository.SetPrivileges(entity, UserId.Value, CurrentBusinessId.Value);
            if (response.Status == DataResponseStatus.OK)
            {
                //Privilege mail
                if (response.Model != null)
                {
                    //var RootPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
                    //var UserPrivileges = string.Join("<br/>", response.Model.UserPrivileges);
                    //var mail = new GMEmail();
                    //var content = response.Model.UserPrivileges.Count() > 1 ? "New privileges added by" + CurrentUser.FirstName : "New privilege added by" + CurrentUser.FirstName;
                    //string emailBody = TemplateManager.AddPrivilegestoUser(RootPath, content, response.Model.UserName, UserPrivileges);
                    //mail.SendDynamicHTMLEmail(response.Model.Email, "New Privilege Added", emailBody, "", "");
                }
            }
            return(Ok <DataResponse>(response));
        }
        public async Task <IHttpActionResult> InsertUserData(BusinessUserModels model)
        {
            var response = new DataResponse <EntityUsers>();

            if (model.RoleIds.Count == 0)
            {
                return(Ok <dynamic>(new { Status = HttpStatusCode.BadRequest, Model = "Plese select at least one role." }));
            }
            if (ModelState.IsValid)
            {
                if (model.Id > 0)
                {
                    var user = await UserManager.FindByIdAsync(model.Id);

                    if (user == null)
                    {
                        return(Ok <dynamic>(new { Status = HttpStatusCode.BadRequest }));
                    }

                    user.FirstName   = model.FirstName;
                    user.MiddleName  = model.MiddleName;
                    user.LastName    = model.LastName;
                    user.PhoneNumber = model.PhoneNumber;
                    user.Email       = model.Email;
                    var userUpdate = UserManager.Update(user);
                    if (!userUpdate.Succeeded)
                    {
                        user.ClearCache(user.UserName);
                        return(Ok <dynamic>(new { Status = HttpStatusCode.BadRequest, Model = userUpdate.Errors.First() }));
                    }
                    IdentityResult result = null;

                    IdentityResult removerole = await UserManager.RemoveFromRoleAsync(user.Id, string.Empty);

                    foreach (var roleId in model.RoleIds)
                    {
                        result = await UserManager.AddToRoleAsync(user.Id, roleId);
                    }
                    var entity = new EntityProfile
                    {
                        UserId          = user.Id,
                        WorkEmail       = model.WorkEmail,
                        HomePhone       = model.HomePhone,
                        AdditionalPhone = model.AdditionalPhone,
                        AddressLine1    = model.AddressLine1,
                        AddressLine2    = model.AddressLine2,
                        City            = model.City,
                        Zip             = model.Zip,
                        StateId         = model.StateId,
                        CreatedBy       = CurrentUserId,
                        UpdatedBy       = CurrentUserId,
                        Startdate       = string.IsNullOrEmpty(model.StartDate) ? (DateTime?)null : DateTime.ParseExact(model.StartDate, "MM-dd-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None),
                        RoleIds         = model.RoleIds,
                        DepartmentIds   = model.DepartmentIds
                    };
                    response = new RepositoryUsers().UpdateUserProfile(entity);
                }
                else
                {
                    model.Password = model.ConfirmPassword = GeneralHelpers.GeneratePassword(3, 2, 2);
                    if (ModelState.IsValid)
                    {
                        var user = new GMUser {
                            FirstName = model.FirstName, MiddleName = model.MiddleName, LastName = model.LastName, PhoneNumber = model.PhoneNumber, UserName = model.Email, Email = model.Email, BusinessId = CurrentBusinessId, IsActive = true
                        };
                        var adminresult = await UserManager.CreateAsync(user, model.Password);

                        if (adminresult.Succeeded)
                        {
                            var entity = new EntityProfile
                            {
                                UserId          = user.Id,
                                WorkEmail       = model.WorkEmail,
                                HomePhone       = model.HomePhone,
                                AdditionalPhone = model.AdditionalPhone,
                                AddressLine1    = model.AddressLine1,
                                AddressLine2    = model.AddressLine2,
                                City            = model.City,
                                Zip             = model.Zip,
                                StateId         = model.StateId,
                                CreatedBy       = CurrentUserId,
                                UpdatedBy       = CurrentUserId,
                                Startdate       = string.IsNullOrEmpty(model.StartDate) ? (DateTime?)null : DateTime.ParseExact(model.StartDate, "MM-dd-yyyy", CultureInfo.InvariantCulture, DateTimeStyles.None),
                                RoleIds         = model.RoleIds,
                                DepartmentIds   = model.DepartmentIds
                            };
                            response = new RepositoryUsers().insertUserProfile(entity);
                            if (model.RoleIds != null)
                            {
                                IdentityResult result = null;
                                foreach (var roleId in model.RoleIds)
                                {
                                    result = await UserManager.AddToRoleAsync(user.Id, roleId.ToString());
                                }
                            }
                            //var RootPath = System.Web.Hosting.HostingEnvironment.ApplicationPhysicalPath;
                            //var ReturnUrl = ConfigurationManager.AppSettings["BaseUrl"] + CurrentUser.RelativeUrl.Replace(" ", "-");
                            //var UserDepartments = string.Join("<br/>", response.Model.UserDepartments);
                            ////Email to user
                            //var mail = new GMEmail();
                            //string emailBody = TemplateManager.NewUser(RootPath, CurrentUser.FirstName, user.FirstName, CurrentUser.BusinessName, model.Email, model.Password, UserDepartments, ReturnUrl);
                            //mail.SendDynamicHTMLEmail(model.Email, "New user registration", emailBody, "", "");
                        }
                        else
                        {
                            return(Ok <dynamic>(new { Status = HttpStatusCode.BadRequest, Model = adminresult.Errors.First() }));
                        }
                    }
                }
                return(Ok <DataResponse>(response));
            }
            else
            {
                var errorList = ModelState.Where(a => a.Value.Errors.Any()).Select(s => new
                {
                    Key     = s.Key.Split('.').Last(),
                    Message = s.Value.Errors[0].ErrorMessage
                });
                return(Ok <dynamic>(new { Status = HttpStatusCode.BadRequest, Model = errorList }));
            }
        }
Exemplo n.º 8
0
        private void SendNotification()
        {
            new Exception("Process Started").Log();

            CRMStagingEntities n = new CRMStagingEntities();
            var response         = new List <EntityNotificationUsers>();
            var repository       = new RepositoryNotification();

            // Get All Notifications which have IspushSent Status true
            response = repository.GetAllUserNotifications();

            foreach (var item in response)
            {
                // Get Details of Notification and user for pushing
                var dataNotification = repository.GetNotificationById(item.NotificationId);

                if (dataNotification.Model == null)
                {
                    break;
                }

                long   NotificationId = dataNotification.Model.NotificationId;
                int    ToUserId       = dataNotification.Model.UserId;
                int    TargetId       = dataNotification.Model.TargetId;
                int    TargetType     = dataNotification.Model.TargetTypeId;
                string Message        = dataNotification.Model.Message;
                //string Subject=null;
                //if(TargetType==(int)NoteType.Task)

                //{
                //var TaskModel = repository.GetTaskById(TargetId);
                //Subject = TaskModel.Model.Subject;
                //}
                //get Notification UnReadCount

                var unReadNotify = repository.GetUnReadNotificationCount(item.UserId);

                int unReadCount = unReadNotify.Model != null ? unReadNotify.Model.NotificationCount : 0;
                //Payload Format
                var notifyObj = new ApplePushPayLoad
                {
                    aps = new aps
                    {
                        alert = Message,
                        badge = unReadCount == 0 ? 1 : unReadCount,
                        sound = "default"
                    },
                    NotificationId = NotificationId,
                    TargetId       = TargetId,
                    TargetType     = TargetType
                };


                //  For Getting User DeviceId Details
                var repositoryUsers = new RepositoryUsers();
                var userDetails     = repositoryUsers.GetUserDeviceIdById(item.UserId);
                if (userDetails.Model != null)
                {
                    var toDeviceId = userDetails.Model.DeviceId;

                    if (toDeviceId == null)
                    {
                        continue;
                    }

                    // Push Message
                    string appPath    = Path.GetDirectoryName(Application.ExecutablePath);
                    string stringPath = Path.Combine(appPath, "AppleCertificate", "Certificates.p12");
                    new Exception("certificate path:" + stringPath).Log();
                    //NotificationHelper.pushMessage(toDeviceId, notifyObj, stringPath);

                    bool pushStatus = NotificationHelper.pushMessage(toDeviceId, notifyObj, stringPath);
                    if (pushStatus == true)
                    {
                        // Update Notification IsPushStatus
                        var updatePushStatus = repository.UpdateNotificationPushStatus(NotificationId, ToUserId);
                        new EventsLog().Write("Push success");
                        new Exception("Push success:- \tDeviceId:" + toDeviceId + "\tUser: "******"\tMessage:" + Message).Log();
                    }
                    else
                    {
                        new Exception("Push failed:- \tDeviceId:" + toDeviceId + "\tUser: "******"\tMessage:" + Message).Log();
                    }
                }
                // var updatePushStatus = repository.UpdateNotificationPushStatus(NotificationId, ToUserId);
            }
        }