コード例 #1
0
        /// <summary>
        /// Metode der gør så man kan oprette en worktime, som indeholder en Timestart, TimeEnd, Date og EmployeeId.
        /// Denne metode bruges også til at sende beskeder ud i view hvis en worktime er oprettet eller ikke oprettet.
        /// </summary>
        public async void CreateWorkTime()
        {
            try
            {
                var sts   = _workTimeViewModel.TimeStart;
                var ste   = _workTimeViewModel.TimeEnd;
                var tsv   = _workTimeViewModel.Date;
                var empid = _workTimeViewModel.EmployeeProp.EmployeeID;

                Worktimes worktimes = new Worktimes()
                {
                    TimeStart  = DateTimeConverter.DateTimeOffsetAndTimeSetToDateTime(tsv, sts),
                    TimeEnd    = DateTimeConverter.DateTimeOffsetAndTimeSetToDateTime(tsv, ste),
                    Date       = DateTimeConverter.DateTimeOffsetToDateTime(tsv),
                    EmployeeID = empid
                };

                var catalog = Catalog.CatalogsSingleton.Instance;

                if (_workTimeViewModel.EmployeeProp.FirstName != null)
                {
                    await catalog.WorktimeCatalog.AddAsync(worktimes);

                    _workTimeViewModel.Message = "WorkTime er oprettet";
                }
                else
                {
                    _workTimeViewModel.Message = "WorkTime kunne ikke oprettes";
                }
            }
            catch (Exception e)
            {
                _workTimeViewModel.Message = "Worktime kunne ikke oprettes";
            }
        }
コード例 #2
0
        public ActionResult EditUserWorktime(int id, Worktimes worktime)
        {
            if (ModelState.IsValid)
            {
                _db.Entry(worktime).State = System.Data.EntityState.Modified;
                _db.SaveChanges();
                return(RedirectToAction("SearchWorktime", new { userId = worktime.UserId }));
            }

            return(View(worktime));
        }
コード例 #3
0
 public ActionResult Edit(Worktimes worktime)
 {
     if (ModelState.IsValid)
     {
         worktime.Leaving          = DateTime.Now;
         _db.Entry(worktime).State = System.Data.EntityState.Modified;
         _db.SaveChanges();
         return(RedirectToAction("SearchWorktime"));
     }
     return(View(worktime));
 }
コード例 #4
0
        public ActionResult DeleteUserWorktime(int id, Worktimes worktime)
        {
            var worktimeList = _db.Worktimes.Where(u => u.Id == id).Select(u => u);

            if (worktimeList.Any())
            {
                var delWorktime = worktimeList.First();
                _db.Worktimes.Remove(delWorktime);
                _db.SaveChanges();
                return(RedirectToAction("SearchWorktime", new { userId = delWorktime.UserId }));
            }
            return(View(worktime));
        }
コード例 #5
0
        private Nullable <TimeSpan> OverTimeCalculator(Worktimes worktime)
        {
            Nullable <TimeSpan> result = null;

            if (worktime.CheckIn != null && worktime.TimeStart > worktime.CheckIn)
            {
                result = worktime.TimeStart - worktime.CheckIn;
            }
            else if (worktime.CheckOut != null && worktime.TimeEnd < worktime.CheckOut)
            {
                result = worktime.CheckOut - worktime.TimeEnd;
            }

            return(result);
        }
コード例 #6
0
        public void CheckinChectOut(int ev)
        {
            Worktimes SelectedWorktime = proxy.GetWorktimeById(ev);

            if (SelectedWorktime.CheckIn == null)
            {
                SelectedWorktime.CheckIn = DateTime.Now;
                CatalogsSingleton.Instance.WorktimeCatalog.UpdateAsync(SelectedWorktime, SelectedWorktime.WorkTimeID.ToString());
                LoadWorktimes();
            }
            else if (SelectedWorktime.CheckOut == null)
            {
                SelectedWorktime.CheckOut = DateTime.Now;
                CatalogsSingleton.Instance.WorktimeCatalog.UpdateAsync(SelectedWorktime, SelectedWorktime.WorkTimeID.ToString());
                LoadWorktimes();
            }
        }
コード例 #7
0
        public ActionResult Create(Worktimes worktime)
        {
            string      username = User.Identity.Name;
            UserProfile user     = _db.UserProfiles.First(u => u.UserName.Equals(username));

            if (ModelState.IsValid)
            {
                worktime.Date    = DateTime.Today;
                worktime.Arrival = DateTime.Now;
                worktime.Leaving = null;
                worktime.UserId  = user.UserId;
                _db.Worktimes.Add(worktime);
                _db.SaveChanges();
                return(RedirectToAction("SearchWorktime"));
            }
            return(View(worktime));
        }
コード例 #8
0
        public ActionResult CreateUserWorktime(int userId, Worktimes worktime)
        {
            //Get the userprofile
            UserProfile user        = _db.UserProfiles.First(u => u.UserId == userId);
            Worktimes   newWorktime = new Worktimes();

            if (ModelState.IsValid)
            {
                DateTime arrive  = new DateTime(worktime.Date.Year, worktime.Date.Month, worktime.Date.Day, worktime.Arrival.Value.Hour, worktime.Arrival.Value.Minute, worktime.Arrival.Value.Second);
                DateTime leaving = new DateTime(worktime.Date.Year, worktime.Date.Month, worktime.Date.Day, worktime.Leaving.Value.Hour, worktime.Leaving.Value.Minute, worktime.Leaving.Value.Second);

                newWorktime.Date    = worktime.Date;
                newWorktime.Arrival = arrive;
                newWorktime.Leaving = leaving;
                newWorktime.UserId  = worktime.UserId;
                _db.Worktimes.Add(newWorktime);
                _db.SaveChanges();
                return(RedirectToAction("SearchWorktime", new { userId = newWorktime.UserId }));
            }
            return(View(newWorktime));
        }
コード例 #9
0
        /// <summary>
        /// Her tiltøjer vi timePlanCollections til viewet.
        /// </summary>
        /// <param name="collection"></param>
        /// <param name="worktime"></param>
        /// <returns></returns>
        protected async Task FindAndAddEmployeesToTimePlanAsync(Dictionary <TimeSpan, TimeIntervalDetails> collection,
                                                                Worktimes worktime)
        {
            //først finder vi empluyee id på den employee som har worktimes
            var       EmployeeCatalog = CatalogsSingleton.Instance.EmployeeCatalog;
            int       id  = worktime.EmployeeID;
            Employees emp = await EmployeeCatalog.GetSingleAsync(id.ToString());

            //Herefter kigger vi igennem alle tiderne og sætter employeen på når det svare til hans tidsplan.
            for (double i = worktime.TimeStart.TimeOfDay.TotalMinutes;
                 i < worktime.TimeEnd.TimeOfDay.TotalMinutes;
                 i += 30)
            {
                TimeSpan tFromWorktime = TimeSpan.FromMinutes(i);
                TimeSpan tTemp;


                while (tFromWorktime.Minutes < 30 && tFromWorktime.Minutes > 0)
                {
                    tFromWorktime = tFromWorktime.Subtract(new TimeSpan(0, 1, 0));
                }

                while (tFromWorktime.Minutes > 30)
                {
                    tFromWorktime = tFromWorktime.Subtract(new TimeSpan(0, 1, 0));
                }

                if (collection.ContainsKey(tFromWorktime))
                {
                    _employeePlacementIndex.AddEmployee(emp);

                    var color = _employeePlacementIndex.GetEmployeeColor(emp.EmployeeID);

                    collection[tFromWorktime].AddMember(emp, new WorktimeEventDetails(emp, worktime)
                    {
                        Color = color
                    });
                }
            }
        }
コード例 #10
0
 public void Update(Worktimes worktime)
 {
     Worktimes.Refresh();
 }
コード例 #11
0
        //
        // GET: /Admin/DeleteUserWorktime

        public ActionResult DeleteUserWorktime(int id)
        {
            Worktimes worktime = _db.Worktimes.First(u => u.Id == id);

            return(View(worktime));
        }
コード例 #12
0
 public void AddWorktimeById(Worktimes worktime)
 {
     _casheSortedById.Add(worktime.WorkTimeID, worktime);
 }