Esempio n. 1
0
 public async Task <JsonResult> GetUserInformation()
 {
     try {
         var model = UsersUtility.MToVM(CurrentUser);
         return(Json(new { success = true, data = model }));
     } catch { return(Json(new { success = false })); }
 }
Esempio n. 2
0
 public async Task <JsonResult> Insert(UsersViewModel item)
 {
     try {
         item.Code      = GeneralClass.StringUtility.StringFormatter.figure3DigitBeautify("" + _companyService.GetByID(CurrentUser.CompanyID).Result.Users.Count());
         item.JobStatus = new JobStatusViewModel()
         {
             ID = item.JobStatus.ID
         };
         item.Company = new CompanyViewModel()
         {
             ID = _currentUser.CompanyID
         };
         item.TimeZone = CurrentUser.TimeZone;
         var model = UsersUtility.VMToM(item);
         model.CreatedAt = GetCurrentTime();
         model.CreatedBy = CurrentUser.ID;
         if (UsersUtility.GenerateUser(model, _userService, _manager, Server, CurrentUser, GetCurrentTime()))
         {
             var vm = UsersUtility.MToVM(_userService.GetByID(model.ID).Result);
             return(Json(new { success = true, data = vm }));
         }
         return(Json(new { success = false }));
     }
     catch (Exception e) {
         Console.WriteLine(e);
         return(Json(new { success = false }));
     }
 }
Esempio n. 3
0
        public UtilityManager(ICacheService cacheUtility, IAuthenticationService authenticationService, ISettingsService settings)
        {
            CacheUtility   = cacheUtility;
            Authentication = authenticationService;
            Settings       = settings;
            Repository     = new Repositories(settings.ConnectionString);

            // Утилиты нужно создавать все, так как они могут использовать события друг друга,
            // если подписчика не создавать, то подписанные события не стработают
            // Утилиты подписываются на события менеджера, что бы знать когда инициализоваться и освобождать ресурсы

            Tasks         = TasksUtility.Create(this);
            Users         = UsersUtility.Create(this);
            Boards        = BoardsUtility.Create(this);
            Projects      = ProjectsUtility.Create(this);
            Statuses      = TasksStatusesUtility.Create(this);
            Events        = EventHistoryUtility.Create(this);
            Comments      = CommentsUtility.Create(this);
            Invites       = InvitesUtility.Create(this);
            Organizations = OrganizationsUtility.Create(this);
            Tariffs       = TariffUtility.Create(this);
            Texts         = TextsUtility.Create(this);

            OnInited();
        }
Esempio n. 4
0
 public async Task <JsonResult> GetAll()
 {
     try
     {
         var list = _userService.GetAll().Result.ToList();
         return(Json(new { success = true, data = UsersUtility.MsToVMs(list) }, JsonRequestBehavior.AllowGet));
     }
     catch { return(Json(new { success = false }, JsonRequestBehavior.AllowGet)); }
 }
Esempio n. 5
0
        public async Task <JsonResult> LoginUser(string Code, string imageUri)
        {
            try
            {
                var path  = Server.MapPath("/UPLOADS/SubscriberFiles/" + CurrentUser.CompanyID);
                var file  = PathChecker.FindAvailableFileName(path, "File");
                var users = UsersUtility.FilterByCompany(CurrentUser.CompanyID, _userService.GetAll().Result.ToList());
                var user  = UsersUtility.FilterByCode(StringFormatter.RemoveStringCharacter(" ", Code), users);
                if (user.Count > 0)
                {
                    var attendance = AttendanceUtility.FilterByCompanyID(CurrentUser.CompanyID, _attendanceService.GetAll().Result.ToList());
                    attendance = AttendanceUtility.FilterByUserID(user.FirstOrDefault().ID, attendance, false);
                    attendance = AttendanceUtility.FilterByDateFromTo(GetCurrentTime(), GetCurrentTime(), attendance);

                    if (attendance.Count > 0)
                    {
                        var attendanceData = new Attendance();
                        //checks if there is already a timeins if true then timeout that attendance else time in a user
                        var timeout = AttendanceUtility.FilterTimeIn(attendance, false);
                        if (timeout.Count > 0)
                        {
                            if (ImageUpload.UriToServer(imageUri, path + "/" + file))
                            {
                                attendanceData = timeout.FirstOrDefault();
                                attendanceData.TimeOutImage = "/UPLOADS/SubscriberFiles/" + CurrentUser.CompanyID + "/" + file;
                                attendanceData.TimeOut      = GetCurrentTime().TimeOfDay;
                                attendanceData.UpdatedAt    = GetCurrentTime();
                            }
                        }
                        else
                        {
                            if (ImageUpload.UriToServer(imageUri, path + "/" + file))
                            {
                                //time in user attendance check if there are timeins already
                                var timeins = AttendanceUtility.FilterTimeIn(attendance, true);
                                attendanceData             = timeins.FirstOrDefault();
                                attendanceData.TimeInImage = "/UPLOADS/SubscriberFiles/" + CurrentUser.CompanyID + "/" + file;
                                attendanceData.TimeIn      = GetCurrentTime().TimeOfDay;
                                attendanceData.UpdatedAt   = GetCurrentTime();
                            }
                        }
                        _attendanceService.Update(attendanceData);
                        return(Json(new { success = true }, JsonRequestBehavior.AllowGet));
                    }
                    else
                    {
                        return(Json(new { success = false, message = MessageUtility.TimeOff() }));
                    }
                }

                return(Json(new { success = false, message = MessageUtility.UserLoginIDNONExist() }));
            }
            catch (Exception e) { return(Json(new { success = false, message = MessageUtility.ServerError(), error = e })); }
        }
Esempio n. 6
0
 public async Task <JsonResult> GetAllByCompanyID()
 {
     try {
         var list = _userService.GetAll().Result.ToList();
         list = UsersUtility.FilterByCompany(CurrentUser.CompanyID, list);
         list = UsersUtility.FilterByIsArchived(list, false);
         var vms = UsersUtility.MsToVMs(list);
         return(Json(new { success = true, data = vms, count = list.Count }, JsonRequestBehavior.AllowGet));
     } catch (Exception e) {
         Console.WriteLine(e);
         return(Json(new { success = false }));
     }
 }
Esempio n. 7
0
 public async Task <JsonResult> Update(UsersViewModel item)
 {
     try {
         var imageFile = item.profileImage.Contains(CurrentUser.CompanyID) ? item.profileImage : "/UPLOADS/SubscriberFiles/" + CurrentUser.CompanyID + "/" + FileManagerUtility.UploadImage(Server, item.profileImage, Server.MapPath("/UPLOADS/SubscriberFiles/") + CurrentUser.CompanyID, "File" + TimeFormatter.DateToString1(GetCurrentTime()));
         if (imageFile != null)
         {
             item.profileImage = imageFile;
             var realModel = _userService.GetByIDAsync(item.ID).Result;
             var model     = UsersUtility.UVMToUM(realModel, item);
             model.UpdatedAt  = GetCurrentTime();
             model.UpdatedBy  = CurrentUser.ID;
             model.isArchived = false;
             _userService.Update(model);
             return(Json(new { success = true, data = model }));
         }
         return(Json(new { success = false }));
     } catch { return(Json(new { success = false })); }
 }
Esempio n. 8
0
        public ViewResult EditPassword(FormCollection collection)
        {
            string oldPassword = collection["oldPassword"];

            if (oldPassword.IsNullOrEmpty())
            {
                ModelState.AddModelError("oldPassword", "Введите старый пароль.");
            }
            else if (!UsersUtility.CheckPassword(Utility.Users.CurrentUser, oldPassword))
            {
                ModelState.AddModelError("oldPassword", "Пароль неверный.");
            }

            if (TrySetNewPassword(Utility.Authentication.UserId, collection))
            {
                ViewData.Add("message", "Пароль успешно изменен.");
            }

            ViewData.Model = Utility.Users.CurrentUser;

            // Отображаем ошибки
            return(View("EditPassword"));
        }
Esempio n. 9
0
        public ActionResult Register(string id, string returnUrl, FormCollection collection)
        {
            string   password        = collection["password"];
            string   confirmPassword = collection["confirmPassword"];
            string   email           = collection["email"].Trim(); // во время обычной регистрации имейл это логин
            TimeSpan offset          = TimeSpan.FromMinutes(collection["timezone"].ToInt());

            try
            {
                #region Валидация
                if (password.IsNullOrEmpty())
                {
                    ModelState.AddModelError("password", "Введите пароль.");
                }
                if (email.IsNullOrEmpty())
                {
                    ModelState.AddModelError("email", "Введите email.");
                }

                if (!email.IsValidEmail())
                {
                    ModelState.AddModelError("email", "Введите правильный email.");
                }

                if (password != confirmPassword)
                {
                    ModelState.AddModelError("confirmPassword", "Повторите пароль правильно.");
                }

                // Пользователь регестрируется через имейл, по этому он является логином
                IUser oldUser = Utility.Users.Get(email);
                if (oldUser != null)
                {
                    ViewData.Add("email", email);
                    ModelState.AddModelError("email", "Пользователь уже зарегестрирован.");

                    // на всякий случай высылаем повторно конфирм, если пользователь решил ввести данные повторно
                    if (!oldUser.IsConfirmed && UsersUtility.CheckPassword(oldUser, password))
                    {
                        MailsManager.SendConfirmEmail(oldUser);
                    }
                }
                #endregion

                if (ModelState.IsValid)
                {
                    string nick = email.Split('@')[0];
                    try
                    {
                        Utility.Users.Add(
                            nick,
                            password,
                            email,
                            offset,
                            id,                             // Код инвайта
                            RegistrationType.Default);
                    }
                    catch (TariffException exception)
                    {
                        return(Message(exception.Message));
                    }

                    if (returnUrl.IsNullOrEmpty())
                    {
                        return(View("Registration"));
                    }

                    return(Redirect(returnUrl));
                }

                ViewData.Model = GetTimeZones();

                return(View());
            }
            catch
            {
                Utility.Users.Delete(email);
                throw;
            }
        }
Esempio n. 10
0
        public ActionResult Login(string id, string login, string password, bool rememberme, string returnUrl)
        {
            string inviteCode = id;

            if (login.IsNullOrEmpty())
            {
                ModelState.AddModelError("login", "Введите логин.");
            }
            if (password.IsNullOrEmpty())
            {
                ModelState.AddModelError("password", "Введите пароль.");
            }

            if (ModelState.IsValid)
            {
                IUser user = Utility.Users.Get(login);

                if (user != null)
                {
                    if (UsersUtility.CheckPassword(user, password))
                    {
                        if (user.IsConfirmed)
                        {
                            Utility.Authentication.SignIn(user.Id, rememberme);

                            if (!inviteCode.IsNullOrEmpty())
                            {
                                IOrganization organization = Utility.Organizations.GetByInviteCode(inviteCode);
                                try
                                {
                                    Utility.Organizations.AddUser(organization, user);
                                }
                                catch (TariffException exception)
                                {
                                    return(Message(exception.Message));
                                }
                            }

                            if (!returnUrl.IsNullOrEmpty())
                            {
                                return(Redirect(returnUrl));
                            }

                            return(RedirectToAction("index", "boards"));
                        }

                        ModelState.AddModelError("login", "Регистрация не подтверждена. Проверьте почту для получения инструкций.");
                    }
                    else
                    {
                        ModelState.AddModelError("password", "Пароль неверный.");
                    }
                }
                else
                {
                    ModelState.AddModelError("login", "Пользователя не существует.");
                }
            }

            return(View());
        }
 public async Task <JsonResult> CurrentUserInfo()
 {
     try
     {
         return(Json(new { success = true, ID = CurrentUser.ID, firstname = CurrentUser.FirstName, lastname = CurrentUser.LastName, data = UsersUtility.MToVM1(CurrentUser) }, JsonRequestBehavior.AllowGet));
     }
     catch (Exception e) { return(Json(new { success = false, message = e }, JsonRequestBehavior.AllowGet)); }
 }