public AddNewPinViewModel(Position position)
        {
            _mapCenter     = position;
            ValidCities    = new List <DeserializeCitiesData>();
            _pinCategories = new ObservableCollection <PinCategory>(ApplicationSettings.PinCategories.Select(item =>
            {
                var temp = new PinCategory
                {
                    CategoriesBranch = item.CategoriesBranch,
                    Color            = item.Color,
                    Icon             = item.Icon,
                    Id           = item.Id,
                    PinIcon      = item.PinIcon,
                    IsVisible    = true,
                    ItemSelected = false,
                    Name         = item.Name,
                    ParentId     = item.ParentId
                };
                temp.ItemTapped += Category_ItemTapped;
                return(temp);
            }));
            _pinSubCategories = new ObservableCollection <PinCategory>(ApplicationSettings.PinSubCategories.Select(item =>
            {
                var temp = new PinCategory
                {
                    CategoriesBranch = item.CategoriesBranch,
                    Color            = item.Color,
                    Icon             = item.Icon,
                    PinIcon          = item.PinIcon,
                    Id           = item.Id,
                    IsVisible    = false,
                    ItemSelected = false,
                    Name         = item.Name,
                    ParentId     = item.ParentId
                };
                temp.ItemTapped += Tag_ItemTapped;
                return(temp);
            }));
            _weekViewModel     = new WeekViewModel();
            _baseCategoryImage = "empty_object_icon.png";
            //_photo = "add_picture_btn.png";
            _workTimeViewModels = new List <WorkTimeViewModel>();
            _phoneViewModels    = new List <PhoneViewModel>();
            var firstWoktimeVm = new WorkTimeViewModel(new List <MyDayOfWeek>(), true);

            firstWoktimeVm.PlusMinusClicked += WoktimeVm_PlusMinusClicked;
            firstWoktimeVm.CalendarClicked  += WoktimeVm_CalendarClicked;
            _workTimeViewModels.Add(firstWoktimeVm);
            var firstPhone = new PhoneViewModel(new Phone {
                Primary = true
            }, true);

            firstPhone.PlusMinusClicked += Phone_PlusMinusClicked;
            _phoneViewModels.Add(firstPhone);
            _isRedact = false;
            Photos.CollectionChanged += Photos_CollectionChanged;
        }
        public CreateWeek(
            IWeekApplicationService weekApplicationService,
            WeekViewModel week)
        {
            _weekApplicationService = weekApplicationService;
            _week = week;

            InitializeComponent();
        }
 public ActionResult ChangeDate(WeekViewModel contextWeekModel)
 {
     Session["contextDate"] = contextWeekModel.MyDate;
     return(RedirectToAction("TimeSheet", new
     {
         contextId = EmployeeFunctions.returnWeekofYear(contextWeekModel.MyDate),
         contextDate = contextWeekModel.MyDate
     }));
 }
        public ActionResult TimeSheet(int contextId, DateTime contextDate)
        {
            WeekViewModel WeekModel = new WeekViewModel();

            Debug.WriteLine(contextDate);
            //Get WeekObject
            WeekModel.theWeek = GetWeek.ReturnObject(((UserProfile)Session["User"]).UserId, contextId);
            WeekModel.MyDate  = contextDate;
            return(View(WeekModel));
        }
        public void Create(WeekViewModel model)
        {
            var workItem = _mapper.Map <Week>(model);

            workItem.SetDescription();

            _weekRepository.Add(workItem);

            _transaction.Commit();
        }
Example #6
0
 private static WeekPage GetPreviousWeek(
     WeekViewModel currentmodel,
     WeekModelRepository weekmodels,
     IKitsTajmService service)
 {
     return GetAnotherWeek(
         currentmodel,
         weekmodels,
         service,
         TimeSpan.FromDays(-7));
 }
 public ActionResult CreateTimesheet(WeekViewModel contextWeekModel)
 {
     //Add UserId to current Week object
     contextWeekModel.theWeek.UserId = ((UserProfile)Session["User"]).UserId;
     //contextWeek.WeekId = contextWeek.weekNum;
     EmployeeFunctions.addWeek(contextWeekModel.theWeek);
     return(RedirectToAction("TimeSheet", new
     {
         contextId = contextWeekModel.theWeek.WeekId,
         //context session because no other way to preserve date input
         //from week view when submitting a form via partial
         contextDate = Session["contextDate"]
     }));
 }
Example #8
0
        public static void AssertAreEqual(WeekViewModel expected, WeekViewModel actual, string messagePrefix = "")
        {
            if (expected == null && actual == null)
            {
                return;
            }

            Assert.IsFalse(expected == null || actual == null, $"{messagePrefix}Instance should not be null.");

            Assert.AreEqual(expected.Days.Count, actual.Days.Count, $"{messagePrefix}Number of Day entries does not match.");

            for (var i = 0; i < expected.Days.Count; i++)
            {
                ScheduleDayViewModelComparer.AssertAreEqual(expected.Days[i], actual.Days[i], $"{messagePrefix}[Day#{i}]");
            }
        }
        public IActionResult Week(DateTime?dateTime)
        {
            if (!dateTime.HasValue)
            {
                dateTime = DateTime.Now;
            }

            var startofweek = dateTime.Value.FirstDayOfWeek();
            var endofweek   = dateTime.Value.LastDayOfWeek();

            var weekDto = new WeekViewModel()
            {
                StartDate = startofweek,
                EndDate   = endofweek,
                LastWeek  = startofweek.Subtract(new TimeSpan(7, 0, 0, 0)),
                NextWeek  = endofweek.Add(new TimeSpan(7, 0, 0, 0))
            };

            return(View(weekDto));
        }
        private static LinkedListNode<WeekViewModel> Add(
            WeekViewModel model,
            LinkedList<WeekViewModel> models)
        {
            LinkedListNode<WeekViewModel> node;

            if (models.Any() == false)
            {
                node = models.AddFirst(model);
            }
            else if (model.Monday.Date < models.First.Value.Monday.Date)
            {
                node = models.AddFirst(model);
            }
            else// if (model.Monday.Date > models.Last.Value.Monday.Date)
            {
                node = models.AddLast(model);
            }

            return node;
        }
Example #11
0
        private static List <WeekViewModel> CreateWeeklyReservations(
            IReadOnlyDictionary <DateTime, IEnumerable <Reservation> > reservationsByDay,
            int month,
            DateTime currentDay,
            string hall)
        {
            var weeks = new List <WeekViewModel>(5);

            for (int i = 0; i < 5; i++)
            {
                var days = new List <DayViewModel>();

                for (int j = 0; j < 7; j++)
                {
                    var reservations = new List <Reservation>();
                    if (reservationsByDay.ContainsKey(currentDay))
                    {
                        reservations = reservationsByDay[currentDay].OrderBy(x => x.StartHour).ToList();
                    }

                    var dayModel = new DayViewModel
                    {
                        Reservations = reservations,
                        Day          = currentDay,
                        Hall         = hall
                    };

                    currentDay = currentDay.AddDays(1);
                    days.Add(dayModel);
                }

                var week = new WeekViewModel {
                    Days = days, Month = month, Hall = hall
                };
                weeks.Add(week);
            }

            return(weeks);
        }
        public WeekViewModel GetModel(DateTime date)
        {
            var monday = GetMonday(date);

            var model = this._models
                .FirstOrDefault(m => m.Monday.Date.Equals(monday));
            LinkedListNode<WeekViewModel> modelnode;

            if (model == null)
            {
                model = new WeekViewModel(monday, this._timemodel);
                modelnode = Add(model, this._models);
            }
            else
            {
                modelnode = this._models.Find(model);
            }

            PadModel(modelnode, this._timemodel);

            return model;
        }
        private void SaveNewWeek()
        {
            if (IncludeDate.SelectedDate == null || EndDate.SelectedDate == null)
            {
                MessageBox.Show("The date fields never could be null.", "Warning!");
                return;
            }

            var weeks    = _weekApplicationService.GetAllOrderByDescending();
            var sequence = weeks.Max(x => x.Sequence) + 1;

            var week = new WeekViewModel
            {
                CreatedBy = "master",
                Start     = IncludeDate.SelectedDate.GetValueOrDefault(),
                End       = EndDate.SelectedDate.GetValueOrDefault(),
                Sequence  = sequence
            };

            _weekApplicationService.Create(week);
            MessageBox.Show("Week has created", "Information.");

            Close();
        }
        private static async Task Load(WeekViewModel weekmodel, IKitsTajmService service)
        {
            var projects = await service.GetProjects();
            var trs = await service.GetTimeRecords(weekmodel.Monday.Date, weekmodel.Sunday.Date);
            var rows = trs
                .GroupBy(
                    tr => tr.ProjectId,
                    (pid, trs2) => new
                    {
                        Project = projects.FirstOrDefault(p => p.Id == pid),
                        Activities = trs2.GroupBy(
                            tr => tr.ActivityId,
                            (aid, trs3) => new
                            {
                                Activity = projects
                                    .Where(p => p.Id == pid)
                                    .SelectMany(p => p.Activities)
                                    .FirstOrDefault(a => a.Id == aid),
                                TimeRecords = trs3
                            })
                    })
                .OrderBy(pa => pa.Project.Name)
                .SelectMany(
                    pa => pa.Activities
                        .OrderBy(at => at.Activity.Name),
                    (pa, at) => new
                    {
                        Project = pa.Project,
                        Activity = at.Activity,
                        TimeRecords = at.TimeRecords
                    })
                    .Select((pat, rownumber) => new WeekViewModel.RowViewModel(
                        new WeekViewModel.RowViewModel.ProjectViewModel.ProjectViewModelParameters
                        {
                            SelectedItem = pat.Project
                        },
                        new WeekViewModel.RowViewModel.ActivityViewModel.ActivityViewModelParameters
                        {
                            SelectedItem = pat.Activity
                        },
                        pat.TimeRecords
                            .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Monday.Date))
                            .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = tr.ReportedDate,
                                RecordId = tr.RecordId,
                                Text = tr.Time.ToString()
                            })
                            .FirstOrDefault()
                            ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = weekmodel.Monday.Date
                            },
                        pat.TimeRecords
                            .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Tuesday.Date))
                            .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = tr.ReportedDate,
                                RecordId = tr.RecordId,
                                Text = tr.Time.ToString()
                            })
                            .FirstOrDefault()
                            ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = weekmodel.Tuesday.Date
                            },
                        pat.TimeRecords
                            .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Wednesday.Date))
                            .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = tr.ReportedDate,
                                RecordId = tr.RecordId,
                                Text = tr.Time.ToString()
                            })
                            .FirstOrDefault()
                            ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = weekmodel.Wednesday.Date
                            },
                        pat.TimeRecords
                            .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Thursday.Date))
                            .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = tr.ReportedDate,
                                RecordId = tr.RecordId,
                                Text = tr.Time.ToString()
                            })
                            .FirstOrDefault()
                            ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = weekmodel.Thursday.Date
                            },
                        pat.TimeRecords
                            .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Friday.Date))
                            .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = tr.ReportedDate,
                                RecordId = tr.RecordId,
                                Text = tr.Time.ToString()
                            })
                            .FirstOrDefault()
                            ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = weekmodel.Friday.Date
                            },
                        pat.TimeRecords
                            .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Saturday.Date))
                            .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = tr.ReportedDate,
                                RecordId = tr.RecordId,
                                Text = tr.Time.ToString()
                            })
                            .FirstOrDefault()
                            ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = weekmodel.Saturday.Date
                            },
                        pat.TimeRecords
                            .Where(tr => tr.ReportedDate.Date.Equals(weekmodel.Sunday.Date))
                            .Select(tr => new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = tr.ReportedDate,
                                RecordId = tr.RecordId,
                                Text = tr.Time.ToString()
                            })
                            .FirstOrDefault()
                            ?? new WeekViewModel.RowViewModel.DayViewModel.DayViewModelParameters
                            {
                                Date = weekmodel.Sunday.Date
                            },
                        weekmodel,
                        rownumber));

            weekmodel.Projects = projects
                .OrderBy(p => p.Name)
                .ToList();

            foreach (var row in rows)
            {
                weekmodel.Rows.Add(row);
            }
        }
 private static WeekViewModel GetNextWeek(
     WeekViewModel model,
     TimeViewModel timemodel)
 {
     return GetAnotherWeek(
         model,
         TimeSpan.FromDays(7),
         timemodel);
 }
        private static WeekViewModel GetAnotherWeek(
            WeekViewModel model,
            TimeSpan span,
            TimeViewModel timemodel)
        {
            var newmodel = new WeekViewModel(
                model.Monday.Date.Add(span),
                timemodel);

            return newmodel;
        }
Example #17
0
        public IActionResult Post(int sessionId, int scheduleIndex, [FromBody] WeekViewModel viewModel)
        {
            _repository.PostMatchups(sessionId, scheduleIndex, viewModel);

            return(new JsonResult("Success"));
        }
Example #18
0
        public ActionResult Home()
        {
            ViewBag.Message = "Ready, Set, Bake!";

            var userId    = GetId();
            var viewModel = new ViewModel {
                UserId = userId.Value
            };

            using (var context = new RsbContext())
            {
                viewModel.Leagues = context.Leagues.Include("Users").Where(o => o.Users.Any(x => x.UserId == userId)).ToList();
                viewModel.Bakers  = context.Bakers.ToList();

                var pastWeeks = context.Weeks.Include("StarBaker").Include("ExitBaker").ToList();
                var lastWeek  = pastWeeks.OrderByDescending(o => o.Order).Where(o => o.StarBaker != null && o.ExitBaker != null).FirstOrDefault(o => o.EndDateTime < DateTime.UtcNow);
                viewModel.LastWeekStarBaker = lastWeek.StarBaker?.Name;
                viewModel.LastWeekExitBaker = lastWeek.ExitBaker?.Name;

                var weeks = context.Weeks.ToList();

                viewModel.Weeks = new List <WeekViewModel>();
                int iterator = 1;
                foreach (var week in weeks.OrderBy(o => o.Order))
                {
                    var weekVM = new WeekViewModel {
                        Week = week
                    };
                    weekVM.ActualStarBaker = week.StarBaker != null ? week.StarBaker.Id : (Guid?)null;
                    weekVM.ActualExitBaker = week.ExitBaker != null ? week.ExitBaker.Id : (Guid?)null;
                    weekVM.Order           = iterator;

                    viewModel.Weeks.Add(weekVM);
                }

                viewModel.Leagues.Add(new League {
                    Id = Guid.NewGuid(), Users = context.Users.OrderByDescending(o => o.CurrentScore).ToList(), Name = "All Users"
                });

                if (lastWeek.Order == 1)
                {
                    return(View(viewModel));
                }

                var user        = context.Users.Include("Predictions").Single(o => o.UserId == userId);
                var predictions = user.Predictions;

                viewModel.Score = user.CurrentScore;

                if (user.PreviousScores != null)
                {
                    viewModel.PreviousScore = user.PreviousScores.LastOrDefault();
                }

                iterator = 1;
                foreach (var week in viewModel.Weeks.OrderBy(o => o.Order))
                {
                    if (predictions != null && predictions.Count != 0)
                    {
                        var prediction = predictions.SingleOrDefault(o => o.WeekId == week.Week.Id);
                        if (prediction != null)
                        {
                            if (prediction.StarBakerId != null && prediction.StarBakerId != Guid.Empty)
                            {
                                week.PredictedStarBakerId = prediction.StarBakerId;
                            }
                            if (prediction.ExitBakerId != null && prediction.ExitBakerId != Guid.Empty)
                            {
                                week.PredictedExitBakerId = prediction.ExitBakerId;
                            }
                        }
                    }
                }
            }
            return(View(viewModel));
        }
Example #19
0
        private static WeekPage GetAnotherWeek(
            WeekViewModel currentmodel,
            WeekModelRepository weekmodels,
            IKitsTajmService service,
            TimeSpan span)
        {
            var newpage = new WeekPage(
                service,
                weekmodels.GetModel(currentmodel.Monday.Date.Add(span)));

            return newpage;
        }
 /// <summary>
 /// Sets the selected week within the selected season
 /// </summary>
 /// <param name="week">The number of the selected week</param>
 public void SetSelectedWeek(int?week)
 {
     SelectedWeek = new WeekViewModel(week);
 }
        public AddNewPinViewModel(UserPinDescriptor pin)
        {
            Pin            = pin;
            _mapCenter     = new Position(pin.Lat, pin.Lng);
            ValidCities    = new List <DeserializeCitiesData>();
            _pinCategories = new ObservableCollection <PinCategory>(ApplicationSettings.PinCategories.Select(item =>
            {
                var temp = new PinCategory
                {
                    CategoriesBranch = item.CategoriesBranch,
                    Color            = item.Color,
                    Icon             = item.Icon,
                    Id           = item.Id,
                    PinIcon      = item.PinIcon,
                    IsVisible    = true,
                    ItemSelected = false,
                    Name         = item.Name,
                    ParentId     = item.ParentId
                };
                temp.ItemTapped += Category_ItemTapped;
                return(temp);
            }));
            _pinSubCategories = new ObservableCollection <PinCategory>(ApplicationSettings.PinSubCategories.Select(item =>
            {
                var temp = new PinCategory
                {
                    CategoriesBranch = item.CategoriesBranch,
                    Color            = item.Color,
                    Icon             = item.Icon,
                    PinIcon          = item.PinIcon,
                    Id           = item.Id,
                    IsVisible    = false,
                    ItemSelected = false,
                    Name         = item.Name,
                    ParentId     = item.ParentId
                };
                temp.ItemTapped += Tag_ItemTapped;
                return(temp);
            }));

            foreach (var item in _pinSubCategories.Where(psc => psc.ParentId == Pin.BaseCategoryId))
            {
                item.IsVisible    = true;
                item.ItemSelected = Pin.Subcategories.Any(p => p.Id == item.Id);
            }

            OldPhotos = new ObservableCollection <string>(pin.PhotosMini);

            #region [ Для времени работы ]

            _weekViewModel = new WeekViewModel();

            _workTimeViewModels = new List <WorkTimeViewModel>();

            if (Pin.WorkTime != null && Pin.WorkTime.Count > 0)
            {
                foreach (var tempListOfDay in Pin.WorkTime.GroupBy(w => w.CloseTime.ToString() + w.OpenTime.ToString()))
                {
                    var newWorkTimeViewModel = new WorkTimeViewModel();
                    if (_workTimeViewModels.All(wt => !wt.IsAdd))
                    {
                        newWorkTimeViewModel.IsAdd = true;
                    }
                    newWorkTimeViewModel.PlusMinusClicked += WoktimeVm_PlusMinusClicked;
                    newWorkTimeViewModel.CalendarClicked  += WoktimeVm_CalendarClicked;
                    foreach (var workTime in tempListOfDay)
                    {
                        newWorkTimeViewModel.Days.Add(new MyDayOfWeek((DayOfWeek)(workTime.Id == 7 ? 0 : workTime.Id))
                        {
                            IsSelected = true
                        });
                        newWorkTimeViewModel.StartTime = workTime.OpenTime;
                        newWorkTimeViewModel.StopTime  = workTime.CloseTime;
                        _weekViewModel.Days.FirstOrDefault(
                            d => d.Day == (DayOfWeek)(workTime.Id == 7 ? 0 : workTime.Id))
                        .IsSelected = true;
                    }
                    _workTimeViewModels.Add(newWorkTimeViewModel);
                }
            }
            else
            {
                var firstWoktimeVm = new WorkTimeViewModel(new List <MyDayOfWeek>(), true);
                firstWoktimeVm.PlusMinusClicked += WoktimeVm_PlusMinusClicked;
                firstWoktimeVm.CalendarClicked  += WoktimeVm_CalendarClicked;
                _workTimeViewModels.Add(firstWoktimeVm);
            }

            #endregion [ Для времени работы ]

            #region [ Для телефонов ]

            _phoneViewModels = new List <PhoneViewModel>();
            if (Pin.Phones != null && Pin.Phones.Count > 0)
            {
                foreach (var phone in Pin.Phones)
                {
                    var newPhone = new PhoneViewModel(phone);
                    if (newPhone.Phone.Primary)
                    {
                        newPhone.IsAdd = true;
                    }
                    _phoneViewModels.Add(newPhone);
                    newPhone.PlusMinusClicked += Phone_PlusMinusClicked;
                }
            }
            else
            {
                var firstPhone = new PhoneViewModel(new Phone {
                    Primary = true
                }, true);
                firstPhone.PlusMinusClicked += Phone_PlusMinusClicked;
                _phoneViewModels.Add(firstPhone);
            }

            #endregion [ Для телефонов ]

            _baseCategoryString  = Pin.BaseCategoryName;
            _baseCategoryColor   = _pinCategories.FirstOrDefault(c => c.Id == Pin.BaseCategoryId).Color;
            _baseCategoryImage   = _pinCategories.FirstOrDefault(c => c.Id == Pin.BaseCategoryId).Icon;
            BaseCategorySelected = true;
            PinCategories.FirstOrDefault(c => c.Id == Pin.BaseCategoryId).ItemSelected = true;
            _isRedact = true;
            Photos.CollectionChanged += Photos_CollectionChanged;
            PropertyChanged          += AddNewPinViewModel_PropertyChanged;
            Pin.PropertyChanged      += Pin_PropertyChanged;
        }
Example #22
0
        public MonthViewModel GetMonthView(int year, PersianMonth month)
        {
            var monthView            = new MonthViewModel(year, month);
            int dayNumber            = 1;
            int prevMonthStartNumber = monthView.PreviousMonthStartDayNumber;

            monthView.Days = new List <DayViewModel>();

            bool started = false, finished = false;

            for (int j = 0; j < 6; j++)
            {
                for (int i = 6; i >= 0; i--)
                {
                    if (j == 0)  //means it's first week
                    {
                        if (i == 7 - monthView.FirstDayWeekDayNumber)
                        {
                            started = true;
                        }
                        else
                        {
                            if (!started)
                            {
                                var day = DayViewModel.Init(
                                    monthView.PreviousMonth.GetDate(
                                        monthView.PreviousMonthYear,
                                        prevMonthStartNumber));
                                day.Disabled = true;
                                monthView.Days.Add(day);
                                prevMonthStartNumber++;
                            }
                        }
                    }

                    if (finished)
                    {
                        var day = DayViewModel.Init(
                            monthView.NextMonth.GetDate(monthView.NextMonthYear, dayNumber));
                        day.Disabled = true;
                        monthView.Days.Add(day);
                        dayNumber++;
                    }

                    if (started && !finished)
                    {
                        var day = DayViewModel.Init(
                            month.GetDate(year, dayNumber));
                        monthView.Days.Add(day);
                        if (dayNumber == monthView.LastDayNumber)
                        {
                            finished  = true;
                            dayNumber = 0;
                        }
                        dayNumber++;
                    }
                }
            }

            int           idx    = 0;
            int           w      = 1;
            int           wOrder = 1;
            WeekViewModel week   = new WeekViewModel();

            foreach (var day in monthView.Days)
            {
                if (w == 1)
                {
                    week = new WeekViewModel {
                        Order     = wOrder,
                        StartDate = day.DateValue
                    };
                }
                if (w == 7)
                {
                    week.FinishDate = day.DateValue;
                    monthView.Weeks.Add(week);
                    w = 0;
                    wOrder++;
                }

                week.Days.Add(day);
                w++;
            }

            return(monthView);
        }
Example #23
0
 public WeekView(string cityName, string jsonResult, List <Datum2> dailyDetails)
 {
     InitializeComponent();
     BindingContext = new WeekViewModel(cityName, jsonResult, dailyDetails, Navigation);
 }
Example #24
0
        public ActionResult EditableWeeks(bool showWeekType = true)
        {
            if (Request.IsAjaxRequest())
            {
                var groups = GetEditableGroups()
                             .ToList();

                var yearStartDate = UserProfile.EducationYear.DateStart;
                var currentWeek   = ScheduleHelpers.WeekOfLesson(yearStartDate, DateTime.Now);

                var viewModel = new ChangeWeekViewModel
                {
                    EditedWeek           = UserProfile.WeekNumber,
                    EditedWeekStartDate  = ScheduleHelpers.DateOfLesson(yearStartDate, UserProfile.WeekNumber, 1).ToString("dd.MM.yyyy"),
                    EditedWeekEndDate    = ScheduleHelpers.DateOfLesson(yearStartDate, UserProfile.WeekNumber, 7).ToString("dd.MM.yyyy"),
                    CurrentWeek          = currentWeek,
                    CurrentWeekStartDate = ScheduleHelpers.DateOfLesson(yearStartDate, currentWeek, 1).ToString("dd.MM.yyyy"),
                    CurrentWeekEndDate   = ScheduleHelpers.DateOfLesson(yearStartDate, currentWeek, 7).ToString("dd.MM.yyyy"),
                    Weeks = new List <WeekViewModel>()
                };

                // Необходим график учебного процесса чтобы узнать количество недель
                var courseSchedules = new List <CourseSchedule>();
                foreach (var group in groups)
                {
                    var courseNumber = group.Course.CourseNumber;
                    var academicPlan = group.ProgramOfEducation.AcademicPlans
                                       .OrderByDescending(d => d.UploadedAt)
                                       .FirstOrDefault();

                    if (academicPlan != null)
                    {
                        var courseSchedule = academicPlan.CourseSchedules
                                             .SingleOrDefault(x => x.CourseNumber == courseNumber);

                        courseSchedules.Add(courseSchedule);
                    }
                }

                // Если для всех групп загружен учебный план
                if (groups.Count == courseSchedules.Count && showWeekType)
                {
                    var allEquals = courseSchedules.All(o => o.Schedule == courseSchedules[0].Schedule);
                    if (allEquals)
                    {
                        var courseSchedule = courseSchedules.First();
                        for (int index = 1; index <= courseSchedule.Schedule.Length; index++)
                        {
                            var weekStartDate = ScheduleHelpers.DateOfLesson(yearStartDate, index, 1);
                            var weekEndDate   = ScheduleHelpers.DateOfLesson(yearStartDate, index, 7);

                            var currentAbbr  = courseSchedule.Schedule[index - 1];
                            var scheduleType = ScheduleHelpers.ScheduleTypeByAbbr(currentAbbr);

                            var week = new WeekViewModel
                            {
                                WeekNumber        = index,
                                WeekStartDate     = weekStartDate.ToString("dd.MM.yyyy"),
                                WeekEndDate       = weekEndDate.ToString("dd.MM.yyyy"),
                                ScheduleTypeName  = scheduleType["Name"],
                                ScheduleTypeColor = scheduleType["Color"]
                            };

                            viewModel.Weeks.Add(week);
                        }
                    }
                }
                else
                {
                    int index = 1;
                    while (true)
                    {
                        var weekStartDate = ScheduleHelpers.DateOfLesson(yearStartDate, index, 1);
                        var weekEndDate   = ScheduleHelpers.DateOfLesson(yearStartDate, index, 7);

                        var weekInEducationYear = DateHelpers.DatesIsActual(UserProfile.EducationYear, weekStartDate, weekEndDate);
                        if (!weekInEducationYear)
                        {
                            break;
                        }

                        var week = new WeekViewModel
                        {
                            WeekNumber    = index,
                            WeekStartDate = weekStartDate.ToString("dd.MM.yyyy"),
                            WeekEndDate   = weekEndDate.ToString("dd.MM.yyyy")
                        };

                        viewModel.Weeks.Add(week);

                        index++;
                    }
                }

                return(Json(viewModel));
            }

            return(null);
        }
Example #25
0
 public WeekView(WeekViewModel weekViewModel)
 {
     InitializeComponent();
     DataContext = weekViewModel;
 }