[Route("UserBalances")] //*****************************************************************************************************************
        public IHttpActionResult GetUserBalances()
        {
            var loggedUserID        = User.Identity.GetUserId();
            ApplicationDbContext db = new ApplicationDbContext();

            #region assign duumy values
            //var loggedUser = db.Users.FirstOrDefault(u => u.Id == loggedUserID);
            //loggedUser.AnnualBalance = 21;
            //loggedUser.SuddenBalance = 3;
            //loggedUser.SickBalance = 7;
            //db.Users.AddOrUpdate(loggedUser);

            #endregion

            var loggedinUser = db.Users.FirstOrDefault(u => u.Id == loggedUserID);
            LeaveBalanceViewModel balances = new LeaveBalanceViewModel
            {
                AnnualBalance = loggedinUser.AnnualBalance,
                SickBalance   = loggedinUser.SickBalance,
                SuddenBalance = loggedinUser.SuddenBalance
            };

            if (balances == null)
            {
                return(NotFound());
            }

            return(Ok(balances));
        }
示例#2
0
        /// <summary>
        /// Maps the specified original.
        /// </summary>
        /// <param name="original">The original.</param>
        /// <returns></returns>
        public static LeaveBalanceViewModel Map(this LeaveBalanceModel original)
        {
            var mappedOutcome = new LeaveBalanceViewModel
            {
                EmployeeId = original.EmployeeId,
                Balance    = original.Balance,
                Name       = original.Name,
                Surname    = original.Surname
            };

            return(mappedOutcome);
        }
示例#3
0
        public ActionResult LeaveBalanceAdmin()
        {
            LeaveBalanceViewModel lbvm = new LeaveBalanceViewModel();
            int roleid = Convert.ToInt32(Session["RoleId"]);

            lbvm.EmpList = _employeeServices.GetEmployeeList(roleid);
            List <int>            neapaliyear = _reportServices.GetYearList();
            List <SelectListItem> year        = new List <SelectListItem>();

            foreach (int str in neapaliyear)
            {
                year.Add(new SelectListItem
                {
                    Text  = str.ToString(),
                    Value = str.ToString()
                });
            }
            lbvm.YearList = year;
            return(View(lbvm));
        }
        private LeaveBalanceViewModel GetBalanceVM(string userId, int rowId)
        {
            double[] balances = new double[3];
            ADUser   user     = timesheetDb.ADUsers.Where(u => u.Email == userId).FirstOrDefault();
            string   userName = (user == null) ? string.Empty : user.UserName;

            for (int i = 0; i < 3; i++)
            {
                var leaveBalance = timesheetDb.LeaveBalances.Find(userId, (_leaveType)i);
                balances[i] = (leaveBalance == null) ? 0 : Math.Round(leaveBalance.AvailableLeaveHours, 2, MidpointRounding.AwayFromZero);
            }

            LeaveBalanceViewModel model = new LeaveBalanceViewModel()
            {
                RowId    = rowId,
                UserId   = userId,
                UserName = userName,
                Balances = balances
            };

            return(model);
        }
        private List <LeaveBalanceViewModel> ReadCSV(HttpPostedFileBase file)
        {
            List <LeaveBalanceViewModel> model = new List <LeaveBalanceViewModel>();

            using (StreamReader csvreader = new StreamReader(file.InputStream))
            {
                LeaveBalanceViewModel balanceVM = new LeaveBalanceViewModel();
                int i = 1;
                while (!csvreader.EndOfStream)
                {
                    var row  = csvreader.ReadLine();
                    var cols = row.Split(',');
                    if (cols.Length == 3)
                    {
                        balanceVM = new LeaveBalanceViewModel();
                        string lastname = cols[0].Replace("\"", string.Empty)
                                          .Replace(" ", string.Empty);
                        string firstname = cols[1].Replace("\"", string.Empty).Substring(1);
                        balanceVM.UserName = firstname + " " + lastname;
                    }
                    else if (cols.Length == 2)
                    {
                        double leaveHours = 0;

                        if (cols[0] != string.Empty && cols[1] == string.Empty)
                        {
                            balanceVM          = new LeaveBalanceViewModel();
                            balanceVM.UserName = cols[0];
                        }
                        else if (cols[1] == string.Empty && cols[1] == string.Empty)
                        {
                            if (balanceVM != null)
                            {
                                ADUser user = timesheetDb.ADUsers
                                              .Where(u => u.UserName == balanceVM.UserName)
                                              .FirstOrDefault();
                                if (user == null)
                                {
                                    ModelState.AddModelError("", "User '" + balanceVM.UserName + "' doesn't exit in Database.");
                                }
                                else
                                {
                                    balanceVM.UserId   = user.Email;
                                    balanceVM.UserName = balanceVM.UserName;
                                    model.Add(balanceVM);
                                }
                                balanceVM = null;
                            }
                        }
                        else if (Double.TryParse(cols[1], out leaveHours) || cols[1].StartsWith("0.00"))
                        {
                            if (cols[1].StartsWith("0.00"))
                            {
                                leaveHours = 0;
                            }
                            switch (cols[0])
                            {
                            case "Holiday Leave Accrual":
                                balanceVM.Balances[(int)_leaveType.annual] = leaveHours;
                                break;

                            case "Sick Leave Accrual":
                                balanceVM.Balances[(int)_leaveType.sick] = leaveHours;
                                break;

                            case "Time in Lieu (Flex) Accrual":
                                balanceVM.Balances[(int)_leaveType.flexi] = leaveHours;
                                break;

                            default:
                                ModelState.AddModelError("", "Undefined leaves type in row " + i + " .");
                                break;
                            }
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("", "Undefined format in row " + i + " .");
                    }
                    i++;
                }

                if (balanceVM != null)
                {
                    ADUser user = timesheetDb.ADUsers
                                  .Where(u => u.UserName == balanceVM.UserName)
                                  .FirstOrDefault();
                    if (user == null)
                    {
                        ModelState.AddModelError("", "User '" + balanceVM.UserName + "' doesn't exit in Database.");
                    }
                    else
                    {
                        balanceVM.UserId   = user.Email;
                        balanceVM.UserName = balanceVM.UserName;
                        model.Add(balanceVM);
                        balanceVM = null;
                    }
                }
            }
            return(model);
        }