public IEnumerable <WorkHourOnProjecstJson> GetThisPeriodProjectsByUserId(GetThisMonthDataByUserJson json)
        {
            List <WorkHourOnProjecstJson> result     = new List <WorkHourOnProjecstJson>();
            UnitOfWork           uow                 = new UnitOfWork();
            UserManager          userManager         = new UserManager(uow);
            TimeSheetManager     timeSheetManager    = new TimeSheetManager(uow);
            DisplayPeriodManager displayPeriodMnager = new DisplayPeriodManager(uow);
            User          currUser      = userManager.GetByID(Guid.Parse(json.userid));
            DisplayPeriod displayPeriod = displayPeriodMnager.GetDisplayPeriod(currUser);

            DateTime fromDate = json.values[0].Date;
            DateTime toDate   = json.values[json.values.Count() - 1].Date;

            var all = timeSheetManager.GetWorkHoursByUser(currUser, fromDate, toDate);

            foreach (var item in all.GroupBy(x => x.ProjectId).Select(y => y.FirstOrDefault()).ToList())
            {
                var addItem = new WorkHourOnProjecstJson();
                addItem.ProjectId = item.ProjectId;
                addItem.Title     = item.Project.Title;
                var hour = all.Where(a => a.ProjectId == item.ProjectId).Sum(d => d.Hours);
                addItem.Hour = DateUtility.ConvertToTimeSpan(hour);
                result.Add(addItem);
            }

            return(result);
        }
        public AllEntityJson GetThisMonthDataByUser(GetThisMonthDataByUserJson json)
        {
            UnitOfWork       uow              = new UnitOfWork();
            UserManager      userManager      = new UserManager(uow);
            TimeSheetManager timesheetManager = new Domain.TimeSheetManager(uow);
            User             currUser         = userManager.GetByID(Guid.Parse(json.userid.ToString()));
            var presenceours = timesheetManager.GetThisMonthPresencHoursByUserId(currUser.ID, json.value.Date);
            var workours     = timesheetManager.GetWorkHoursByUser(currUser.ID, json.value.Date);

            return(new HomeEntityAssembler().ToJson(presenceours, workours));
        }
        public AllEntityJson GetThisPeriodDataByUserId(GetThisMonthDataByUserJson json)
        {
            UnitOfWork           uow                 = new UnitOfWork();
            UserManager          userManager         = new UserManager(uow);
            User                 currUser            = userManager.GetByID(Guid.Parse(json.userid));
            TimeSheetManager     timesheetManager    = new Domain.TimeSheetManager(uow);
            DisplayPeriodManager displayPeriodMnager = new DisplayPeriodManager(uow);
            DisplayPeriod        displayPeriod       = displayPeriodMnager.GetDisplayPeriod(currUser);

            DateTime fromDate = json.values[0].Date;
            DateTime toDate   = json.values[json.values.Count() - 1].Date;

            var presenceours = timesheetManager.GetThisPeriodPresencHoursByUserId(currUser.ID, fromDate, toDate);
            var workours     = timesheetManager.GetThisPeriodhworkHoursByUserId(currUser.ID, fromDate, toDate);

            return(new HomeEntityAssembler().ToJson(presenceours, workours));
        }
        public IEnumerable <TimeSheetJson> ChangeDisplayPeriodToWeeklyConfirm(Guid UserId)
        {
            UnitOfWork  uow  = new UnitOfWork();
            UserManager um   = new UserManager(uow);
            var         user = um.GetByID(UserId);

            var currentUser          = new UserHelper().GetCurrent();
            DisplayPeriodManager dpm = new DisplayPeriodManager(uow);
            DisplayPeriod        dp  = new DisplayPeriod();

            dp          = dpm.GetDisplayPeriod(currentUser);
            dp.IsWeekly = true;
            dpm.Edit(dp);
            var inputArg = new GetThisMonthDataByUserJson();

            inputArg.userid = user.ID.ToString();
            return(GetTimeSheetsByUserId(inputArg));
        }
        public IEnumerable <WorkHourOnProjecstJson> GetThisMonthProjectsByUserID(GetThisMonthDataByUserJson json)
        {
            List <WorkHourOnProjecstJson> result = new List <WorkHourOnProjecstJson>();
            UnitOfWork       uow              = new UnitOfWork();
            UserManager      userManager      = new UserManager(uow);
            TimeSheetManager timeSheetManager = new TimeSheetManager(uow);
            //SyncWithPWA(uow);
            User User = userManager.GetByID(Guid.Parse(json.userid));
            var  all  = timeSheetManager.GetWorkHoursByUser(User.ID, json.value.Date);

            foreach (var item in all.GroupBy(x => x.ProjectId).Select(y => y.FirstOrDefault()).ToList())
            {
                var addItem = new WorkHourOnProjecstJson();
                addItem.ProjectId = item.ProjectId;
                addItem.Title     = item.Project.Title;
                var hour = all.Where(a => a.ProjectId == item.ProjectId).Sum(d => d.Hours);
                addItem.Hour = DateUtility.ConvertToTimeSpan(hour);
                result.Add(addItem);
            }
            return(result);
        }
        public IEnumerable <TimeSheetJson> GetTimeSheetsByUserId(GetThisMonthDataByUserJson json)
        {
            List <TimeSheetJson> result              = new List <TimeSheetJson>();
            UnitOfWork           uow                 = new UnitOfWork();
            UserManager          userManager         = new UserManager(uow);
            ProjectManager       projectManager      = new Domain.ProjectManager(uow);
            TimeSheetManager     timeSheetManager    = new TimeSheetManager(uow);
            DisplayPeriodManager displayPeriodMnager = new DisplayPeriodManager(uow);
            User          currentUser                = new UserHelper().GetCurrent();
            User          user          = userManager.GetByID(Guid.Parse(json.userid.ToString()));
            DisplayPeriod displayPeriod = displayPeriodMnager.GetDisplayPeriod(currentUser);
            DateTime      fromDate      = DateTime.Now.AddDays(-7);
            DateTime      toDate;

            if (json.values != null)
            {
                if (json.values.Count > 0)
                {
                    fromDate = json.values[0].Date;
                    toDate   = json.values[json.values.Count() - 1].Date;
                }
            }


            if (displayPeriod.IsWeekly)
            {
                fromDate = DateTime.Today.StartOfWeek(DayOfWeek.Saturday);
                toDate   = DateTime.Today.EndOfWeek(DayOfWeek.Friday);
            }
            else
            {
                toDate = fromDate.AddDays(displayPeriod.NumOfDays);
            }

            IEnumerable <WorkHour>     workHours = timeSheetManager.GetWorkHoursByUser(user, fromDate, toDate);
            IEnumerable <PresenceHour> presHours = timeSheetManager.GetPresHoursByUser(user, fromDate, toDate);

            result = TimeSheetAssembler.ToJsonsForConfirm(presHours, workHours, user);
            return(result);
        }