Example #1
0
        public IEnumerable <UserZone> GetAllZonesByUser(int userid)
        {
            IList <UserZone> zones = new List <UserZone>();

            using (Npgsql.NpgsqlConnection conn = new Npgsql.NpgsqlConnection(Infrastructure.ConfigReader.ConnectionString.ToString()))
            {
                conn.Open();
                using (Npgsql.NpgsqlCommand command = new Npgsql.NpgsqlCommand(GetZoneByUserQuery, conn))
                {
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("userid", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Prepare();
                    command.Parameters[0].Value = userid;
                    using (Npgsql.NpgsqlDataReader dr = command.ExecuteReader())
                    {
                        while (dr.Read())
                        {
                            var temp = new UserZone()
                            {
                                UserID = Helper.ConvertFromDBVal <int>(dr[0]), ZoneId = Helper.ConvertFromDBVal <int>(dr[1])
                            };
                            zones.Add(temp);
                        }
                    }
                }
            }
            return(zones);
        }
Example #2
0
 public void DeleteUserZone(UserZone userzone)
 {
     using (Npgsql.NpgsqlConnection conn = new Npgsql.NpgsqlConnection(Infrastructure.ConfigReader.ConnectionString.ToString()))
     {
         conn.Open();
         using (Npgsql.NpgsqlCommand command = new Npgsql.NpgsqlCommand(DeleteUserZoneQuery, conn))
         {
             command.Parameters.Add(new Npgsql.NpgsqlParameter("userzoneid", NpgsqlTypes.NpgsqlDbType.Integer));
             command.Prepare();
             command.Parameters[0].Value = userzone.UserZoneID;
             int rowsAffected = command.ExecuteNonQuery();
         }
     }
 }
Example #3
0
        public void SaveUserZone(UserZone userzone)
        {
            string query;
            bool   isUpdate = false;

            // Want to know right off the bat if we're doing a insert or update
            if (userzone.UserZoneID > 0)
            {
                query    = UpdateUserZoneQuery;
                isUpdate = true;
            }
            else
            {
                query = InsertUserZoneQuery;
            }

            using (Npgsql.NpgsqlConnection conn = new Npgsql.NpgsqlConnection(Infrastructure.ConfigReader.ConnectionString.ToString()))
            {
                conn.Open();
                using (Npgsql.NpgsqlCommand command = new Npgsql.NpgsqlCommand(query, conn))
                {
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("userid", NpgsqlTypes.NpgsqlDbType.Integer));
                    command.Parameters.Add(new Npgsql.NpgsqlParameter("zoneid", NpgsqlTypes.NpgsqlDbType.Integer));

                    if (isUpdate)
                    {
                        command.Parameters.Add(new Npgsql.NpgsqlParameter("userzoneid", NpgsqlTypes.NpgsqlDbType.Integer));
                    }

                    command.Prepare();

                    command.Parameters[0].Value = userzone.UserID;
                    command.Parameters[1].Value = userzone.ZoneId;

                    if (isUpdate)
                    {
                        command.Parameters[2].Value = userzone.UserZoneID;
                    }

                    int rowsAffected = command.ExecuteNonQuery();
                }
            }
        }
Example #4
0
        public ActionResult Create(Web.ViewModel.UserCreateViewModel uc, string values)
        {
            // In addition to updating the User table , also update the timeslot table if
            // the assigned roleid is 3 (for SA) . If the assigned roleid is 3 , then the number
            // of available SA's should go up by one for all the timeslots .
            // You may right it in a static method and call the update code , so that if a user is
            // deleted , then the number of available SA's go down by 1 .
            int       a;
            var       newUser      = uc.user;
            PhoneUser newPhoneUser = new PhoneUser();

            IEnumerable <User> users = new List <User>();

            users = _UserRepository.GetAllUsersByRole(3);
            a     = users.Count();



            if (newUser.selectedRole == "Administrator")
            {
                newUser.AssignedRoleId = 1;
            }
            if (newUser.selectedRole == "Manager")
            {
                newUser.AssignedRoleId = 2;
            }
            if (newUser.selectedRole == "SA")
            {
                newUser.AssignedRoleId = 3;
            }
            if (newUser.selectedRole == "AA")
            {
                newUser.AssignedRoleId = 4;
            }
            if (newUser.selectedRole == "Customer Service Agent")
            {
                newUser.AssignedRoleId = 5;
            }

            var temp = _UserRepository.GetUserByUsername(newUser.UserName);

            if (temp != null)
            {
                return(Json(new { msg = "Not Null. User exists." }));
            }

            newUser.Address2    = "";
            newUser.newPassword = "******";                 // Default first time password
            newUser.IsActive    = true;
            _UserRepository.SaveUser(newUser);

            if (newUser.AssignedRoleId == 3)
            {
                // add one available SA in the timeslot table .
                var timeslots = _timeSlotRepository.TimeSlots;    // get the timeslots

                Threshold threshold = new Threshold();
                threshold = _ThresholdRepository.Thresholds.First();

                foreach (var timeslot in timeslots)
                {
                    timeslot.Num_Available_SA = timeslot.Num_Available_SA + 1;
                    timeslot.Title            = timeslot.Num_Available_SA;
                    if (timeslot.Num_Available_SA > threshold.Upper_Calendar)
                    {
                        timeslot.Color = "green";
                    }
                    else if (timeslot.Num_Available_SA >= threshold.Lower_Calendar && timeslot.Num_Available_SA <= threshold.Upper_Calendar)
                    {
                        timeslot.Color = "yellow";
                    }
                    else
                    {
                        timeslot.Color = "red";
                    }

                    _timeSlotRepository.SaveTimeSlot(timeslot);
                }
            }

            var tempUser = _UserRepository.GetUserByUsername(uc.user.UserName);

            newPhoneUser.CRMUserId  = tempUser.UserId;
            newPhoneUser.Email      = uc.user.EmailOne;
            newPhoneUser.Extension  = uc.extensionNum;
            newPhoneUser.FirstName  = uc.user.FirstName;
            newPhoneUser.MiddleName = uc.user.MiddleName;
            newPhoneUser.LastName   = uc.user.LastName;
            newPhoneUser.AccountId  = 1155;

            _PhoneUserRepos.SavePhoneUser(newPhoneUser);

            if (values != "")
            {
                var ids = values.Split(',');

                UserZone uz = new UserZone();

                var usernew = _UserRepository.GetUserByUsername(uc.user.UserName);

                uz.UserID = usernew.UserId;

                for (int i = 0; i < ids.Length; i++)
                {
                    uz.ZoneId = Convert.ToInt32(ids[i]);
                    _UserZoneRepository.SaveUserZone(uz);
                }
            }
            return(Json(new { redirectToUrl = Url.Action("Index") }));
        }
Example #5
0
        public ActionResult Edit(Web.ViewModel.UserCreateViewModel uc, string values, string vals)
        {
            var newUser = uc.user;
            //newUser.oldPassword = EncryptPassword(newUser.oldPassword);
            string newPswd;
            bool   check = false;

            if (newUser.oldPassword != null && newUser.changePassword1 != null && newUser.changePassword2 != null)
            {
                newPswd = SavePassword(vals, uc.user.UserId);
                if (newPswd == "")
                {
                    check = false;
                }
                else
                {
                    check = true;
                    newUser.newPassword = newPswd;
                }
            }

            PhoneUser newPhoneUser = new PhoneUser();

            newPhoneUser.CRMUserId   = uc.user.UserId;
            newPhoneUser.Email       = uc.user.EmailOne;
            newPhoneUser.Extension   = uc.extensionNum;
            newPhoneUser.FirstName   = uc.user.FirstName;
            newPhoneUser.MiddleName  = uc.user.MiddleName;
            newPhoneUser.LastName    = uc.user.LastName;
            newPhoneUser.AccountId   = 1155;
            newPhoneUser.PhoneUserId = 1;
            _PhoneUserRepos.SavePhoneUser(newPhoneUser);

            newUser.firstTime = false;
            _UserRepository.SaveUser(newUser);

            if (values != "")
            {
                var ids = values.Split(',');

                UserZone uz = new UserZone();

                uz.UserID = uc.user.UserId;

                _UserZoneRepository.DeleteUserZoneByUserID(uc.user.UserId);


                for (int i = 0; i < ids.Length; i++)
                {
                    uz.ZoneId = Convert.ToInt32(ids[i]);
                    _UserZoneRepository.SaveUserZone(uz);
                }
            }
            if (newUser.AssignedRoleId == 1 || newUser.AssignedRoleId == 2)
            {
                return(Json(new { redirectToUrl = Url.Action("Index"), data = check }));
            }
            else
            {
                return(Json(new { redirectToUrl = Url.Action("Edit", new { id = newUser.UserId }), data = check }));
                // return RedirectToAction("Edit", "User", new { id = newUser.UserId });
            }
        }