private void SetupLessonViewHolder(RecyclerView.ViewHolder viewHolder, int position)
        {
            lessonViewHolder = viewHolder as ScheduleCardRowLessonViewHolder;

            //TODO Null check
            var lesson = lessons[position];

            var roomTextView      = lessonViewHolder.roomTextView;
            var buildingTextView  = lessonViewHolder.buildingTextView;
            var subjectTextView   = lessonViewHolder.subjectTextView;
            var startTimeTextView = lessonViewHolder.startTimeTextView;
            var endTimeTextView   = lessonViewHolder.endTimeTextView;
            var typeTextView      = lessonViewHolder.typeTextView;
            var teacherTextView   = lessonViewHolder.teacherTextView;
            var lmsUrlTextView    = lessonViewHolder.lmsUrlTextView;
            var groupTextView     = lessonViewHolder.groupTextView;
            var dayOfWeekTextView = lessonViewHolder.dayOfWeekTextView;
            var dateTextView      = lessonViewHolder.dateTextView;

            roomTextView.Text      = "ауд. " + lesson.Auditories[0].Name;
            buildingTextView.Text  = lesson.Auditories[0].Building.Name + ", ";
            subjectTextView.Text   = lesson.Subject;
            startTimeTextView.Text = lesson.Time_Start.ToString("HH:mm", cultureInfo) + " -";
            endTimeTextView.Text   = lesson.Time_End.ToString("HH:mm", cultureInfo);
            typeTextView.Text      = lesson.TypeObj.Name.Replace("Лабораторные", "Лаб.")
                                     .Replace("Курсовое проектирование", "Курс."); //TODO property in axml?
            dateTextView.Text      = lesson.Day.Date.ToString("M", cultureInfo);
            dayOfWeekTextView.Text = lesson.Day.Date.ToString("dddd", cultureInfo).FirstCharToUpper();

            //TODO Refactor
            var hasTeachers = lesson.Teachers != null && lesson.Teachers.Any();

            if (hasTeachers)
            {
                CombineTeachers(teacherTextView, lesson);
            }
            else
            {
                AddRulesToView(groupTextView,
                               new[] { (LayoutRules.Below, Resource.Id.textview_card_buildingnumber_row_lesson_schedule) });
Exemple #2
0
        public override void OnBindViewHolder(RecyclerView.ViewHolder viewHolder, int position)
        {
            switch (viewHolder.ItemViewType)
            {
            case LessonConst:
                viewHolderLesson = (ScheduleCardRowLessonViewHolder)viewHolder;
                Lesson lesson = (Lesson)mLessons[position];

                TextView room      = viewHolderLesson.room;
                TextView building  = viewHolderLesson.building;
                TextView subject   = viewHolderLesson.subject;
                TextView startTime = viewHolderLesson.startTime;
                TextView endTime   = viewHolderLesson.endTime;
                TextView type      = viewHolderLesson.type;
                TextView teacher   = viewHolderLesson.teacher;
                TextView group     = viewHolderLesson.group;

                room.Text      = "ауд. " + lesson.Auditories[0].Name;
                building.Text  = lesson.Auditories[0].Building.Name + ", ";
                subject.Text   = lesson.Subject;
                startTime.Text = lesson.Time_Start.ToString("HH:mm", cultureInfo);
                endTime.Text   = lesson.Time_End.ToString("HH:mm", cultureInfo);
                type.Text      = lesson.TypeObj.Name.Replace("Лабораторные", "Лаб.");

                if (lesson.Teachers == null || lesson.Teachers.Count == 0)
                {
                    var lparams = (RelativeLayout.LayoutParams)group.LayoutParameters;
                    lparams.AddRule(LayoutRules.Below, Resource.Id.textview_card_buildingnumber_row_lesson_schedule);
                    group.LayoutParameters = lparams;

                    ((ViewGroup)scheduleView).RemoveView(viewHolderLesson.teacher);
                }
                else
                {
                    teacher.Text = String.Join(", ", lesson.Teachers.Select(t => t.Full_Name).ToArray());
                }

                if (!lesson.Additional_Info.Equals(""))     //Поток или подгруппы
                {
                    group.Text = lesson.Additional_Info;
                }
                else
                {
                    group.Text = lesson.Groups.First().Name;
                }


                break;

            case TitleConst:
                viewHolderTitle = (ScheduleCardRowTitleViewHolder)viewHolder;
                TitleTag title = (TitleTag)mLessons[position];

                TextView date      = viewHolderTitle.date;
                TextView dayOfWeek = viewHolderTitle.dayOfWeek;

                date.Text      = title.Date.ToString("M", cultureInfo);                    //"dd MMMM"
                dayOfWeek.Text = title.Date.ToString("dddd", cultureInfo);
                dayOfWeek.Text = dayOfWeek.Text.Substring(0, 1).ToUpper() + dayOfWeek.Text.Substring(1);
                break;

            default:
                break;
            }
        }