/// <summary>
 /// Patikrina at keitimas yra galimas
 /// </summary>
 /// <param name="first">Pirma paskaita</param>
 /// <param name="second">Antra paskaita</param>
 /// <returns>true or false</returns>
 private bool isPossibleToChange(Lecture first, Lecture second)
 {
     if (first.WeekdayID != null && second.WeekdayID != null && first.LectureTimeID != null && second.LectureTimeID != null)
     {
         //Pirmos paskkaitos dalyvių tvarkaraščiai
         TimeSchedule firstTeacher   = Schedule(first.TeacherID, "TeacherID");
         TimeSchedule firstClassRoom = Schedule(first.ClassRoomID, "ClassRoomID");
         TimeSchedule firstGroup     = Schedule(first.GroupID, "GroupID");
         //Antros paskkaitos dalyvių tvarkaraščiai
         TimeSchedule secondTeacher   = Schedule(second.TeacherID, "TeacherID");
         TimeSchedule secondClassRoom = Schedule(second.ClassRoomID, "ClassRoomID");
         TimeSchedule secondGroup     = Schedule(second.GroupID, "GroupID");
         //Patikrinam ar laisvi
         bool firstTeacherIsFree    = firstTeacher.isFree(second.WeekdayID ?? 0, second.LectureTimeID ?? 0);
         bool firstClassRoomrIsFree = firstClassRoom.isFree(second.WeekdayID ?? 0, second.LectureTimeID ?? 0);
         bool firstGroupIsFree      = firstGroup.isFree(second.WeekdayID ?? 0, second.LectureTimeID ?? 0);
         bool secondTeacherIsFree   = secondTeacher.isFree(first.WeekdayID ?? 0, first.LectureTimeID ?? 0);
         bool secondGroupIsFree     = secondGroup.isFree(first.WeekdayID ?? 0, first.LectureTimeID ?? 0);
         bool secondClassRoomIsFree = secondClassRoom.isFree(first.WeekdayID ?? 0, first.LectureTimeID ?? 0);
         return(((firstTeacherIsFree && secondTeacherIsFree) || first.TeacherID == second.TeacherID) &&
                ((firstClassRoomrIsFree && secondClassRoomIsFree) || first.ClassRoomID == second.ClassRoomID) &&
                ((firstGroupIsFree && secondGroupIsFree) || first.GroupID == second.GroupID));
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 2
0
        public string GetBreakTimeHoursofEmployee(string EmployeeId)
        {
            try
            {
                var result = "";

                var apiUrl = Application.Current.Properties["DomainUrl"] + "/api/staff/GetWorkingHours?employeeId=" + EmployeeId;
                result = PostData("GET", "", apiUrl);


                var data = JsonConvert.DeserializeObject <List <EmployeeWorkingHours> >(result);
                List <EmployeeWorkingHours> empworkinghours = new List <EmployeeWorkingHours>();
                empworkinghours = data;


                apiUrl = Application.Current.Properties["DomainUrl"] + "/api/staff/GetAllBreaksForEmployee?employeeId=" + EmployeeId;
                result = PostData("GET", "", apiUrl);



                var breakdata = JsonConvert.DeserializeObject <List <BreakTime> >(result);
                List <BreakTime> ListofBreaktime = new List <BreakTime>();
                ListofBreaktime = breakdata;

                List <BreakTimeHoursofEmployee> listofEmployeeBreakTime = new List <BreakTimeHoursofEmployee>();
                foreach (var item in empworkinghours)
                {
                    BreakTimeHoursofEmployee dt = new BreakTimeHoursofEmployee();
                    dt.EmployeeId   = item.EmployeeId;
                    dt.CompanyId    = item.CompanyId;
                    dt.Day          = item.NameOfDayAsString;
                    dt.DayOfWeek    = item.NameOfDay;
                    dt.CreationDate = DateTime.Now.ToString();
                    dt.Available    = item.IsOffAllDay == true ? false : true;
                    List <TimeSchedule> objtime = new List <TimeSchedule>();
                    foreach (var obj in ListofBreaktime)
                    {
                        if (item.NameOfDay == obj.DayOfWeek)
                        {
                            TimeSchedule time = new TimeSchedule();
                            time.Id        = obj.Id;
                            time.DayOfWeek = obj.DayOfWeek;
                            DateTime startdate = DateTime.Parse(obj.Start, CultureInfo.CurrentCulture);
                            time.Start = startdate.ToString("hh:mm tt");
                            DateTime enddatedate = DateTime.Parse(obj.End, CultureInfo.CurrentCulture);
                            time.End = enddatedate.ToString("hh:mm tt");
                            objtime.Add(time);
                        }
                    }
                    dt.StartEndTime = objtime;
                    listofEmployeeBreakTime.Add(dt);
                }
                var jsonstring = JsonConvert.SerializeObject(listofEmployeeBreakTime.OrderBy(x => ((int)x.DayOfWeek + 6) % 7));
                return(jsonstring);
            }
            catch (Exception e)
            {
                return(e.ToString());
            }
        }
        /// <summary>
        /// Grazina norima vieno objekto uzimtumo tvarkarasti
        /// </summary>
        /// <param name="id">Objekto ID</param>
        /// <param name="para">Objektas</param>
        /// <returns>Objekto uzimtumo tvarkarasti</returns>
        private TimeSchedule Schedule(int id, string para)
        {
            TimeSchedule schedule = new TimeSchedule(id, db.LectureTimes.Count());

            foreach (Lecture lecture in db.Lectures)
            {
                switch (para)
                {
                case "TeacherID":
                    if (lecture.TeacherID == id && lecture.WeekdayID != null && lecture.LectureTimeID != null)
                    {
                        schedule.setTrue(lecture.WeekdayID ?? 0, lecture.LectureTimeID ?? 0);
                    }
                    break;

                case "GroupID":
                    if (lecture.GroupID == id && lecture.WeekdayID != null && lecture.LectureTimeID != null)
                    {
                        schedule.setTrue(lecture.WeekdayID ?? 0, lecture.LectureTimeID ?? 0);
                    }
                    break;

                case "ClassRoomID":
                    if (lecture.ClassRoomID == id && lecture.WeekdayID != null && lecture.LectureTimeID != null)
                    {
                        schedule.setTrue(lecture.WeekdayID ?? 0, lecture.LectureTimeID ?? 0);
                    }
                    break;

                default:
                    break;
                }
            }
            return(schedule);
        }
Ejemplo n.º 4
0
        private void ParseJSON()
        {
            Log("Parse JSON");

            _bossTimes = new Dictionary<string, Settings>();
            foreach (JObject boss in _scheduleJSON.GetValue("bosses").Children<JObject>())
            {
                Settings settings = new Settings();
                List<TimeSchedule> dateTimes = new List<TimeSchedule>();
                
                foreach (JProperty dayProperty in boss.GetValue("times").Children<JProperty>())
                {
                    JObject dayObject = (JObject)dayProperty.Value;

                    foreach (JToken hour in dayObject.GetValue("hours").Children())
                    {
                        DayOfWeek weekDay = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), dayProperty.Name);
                        string[] hourFormatted = hour.ToString().Split(':');

                        TimeSchedule dateTime = new TimeSchedule(weekDay, int.Parse(hourFormatted[0]), int.Parse(hourFormatted[1]));
                        dateTimes.Add(dateTime);
                    }
                }

                //Set Color
                uint colorValue = uint.Parse(boss.GetValue("color").ToString().Replace("#", ""), System.Globalization.NumberStyles.HexNumber);
                settings.color = new Color();

                //Set Schedule
                settings.schedule = dateTimes;

                _bossTimes.Add(boss.GetValue("name").ToString(), settings);
            }
        }
Ejemplo n.º 5
0
        public async Task <ActionResult <TimeSchedule> > PostTimeSchedule(TimeSchedule timeSchedule)
        {
            _context.TimeSchedule.Add(timeSchedule);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetTimeSchedule", new { id = timeSchedule.Id }, timeSchedule));
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> PutTimeSchedule(int id, TimeSchedule timeSchedule)
        {
            if (id != timeSchedule.Id)
            {
                return(BadRequest());
            }

            _context.Entry(timeSchedule).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!TimeScheduleExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
Ejemplo n.º 7
0
        public void checkSetTimeSchedule()
        {
            //Check the get schedule function converting json to object
            TimeSchedule roleList = _scheduleService.getSchedule(json1);

            //This is to check if the object is not empty or any error return from the function will make object into null
            Assert.IsNotNull(roleList, "Unable to parse json 1 to time schedule object");

            //Check the get schedule function converting json to object
            roleList = _scheduleService.getSchedule(json2);

            //This is to check if the object is not empty or any error return from the function will make object into null
            Assert.IsNotNull(roleList, "Unable to parse json 2 to time schedule object");

            //Check the get schedule function converting json to object
            roleList = _scheduleService.getSchedule(json3);

            //This is to check if the object is not empty or any error return from the function will make object into null
            Assert.IsNotNull(roleList, "Unable to parse json 3 to time schedule object");

            //Check the get schedule function converting json to object
            roleList = _scheduleService.getSchedule(json4);

            //This is to check if the object is not empty or any error return from the function will make object into null
            Assert.IsNotNull(roleList, "Unable to parse json 4 to time schedule object");

            //Check the get schedule function converting json to object
            roleList = _scheduleService.getSchedule(json5);

            //This is to check if the object is not empty or any error return from the function will make object into null
            Assert.IsNotNull(roleList, "Unable to parse json 5 to time schedule object");
        }
Ejemplo n.º 8
0
        public void validateResult1()
        {
            //Initialize the user list object and timeschedule object
            TimeSchedule ts1 = _scheduleService.getSchedule(json1);
            TimeSchedule ts2 = _scheduleService.getSchedule(json2);
            TimeSchedule ts3 = _scheduleService.getSchedule(json3);
            TimeSchedule ts4 = _scheduleService.getSchedule(json4);
            TimeSchedule ts5 = _scheduleService.getSchedule(json5);

            //Run run the subordinate method to return value
            //same timing with same employee id
            bool result = _scheduleService.isOverlapping(ts1, ts2);

            //In case return error user allowed to see what is the return error
            Console.WriteLine(result.ToString());

            //This is to check if return valued is return as expected for subordinate 3
            Assert.IsTrue(result, "Same timing with same employee id - Overlapping - Test failed");

            //same timing but different employee id
            result = _scheduleService.isOverlapping(ts1, ts3);

            //In case return error user allowed to see what is the return error
            Console.WriteLine(result.ToString());

            //This is to check if return valued is return as expected for subordinate 3
            Assert.IsFalse(result, "Same schedule diffrent employee id - Overlapping - Test failed");

            //same employee id with first schedule finish time in between second schedule
            //first schedule (08:30am - 12:00pm) and second schedule (09:00am - 05:00pm)
            result = _scheduleService.isOverlapping(ts4, ts1);

            //In case return error user allowed to see what is the return error
            Console.WriteLine(result.ToString());

            //This is to check if return valued is return as expected for subordinate 3
            Assert.IsTrue(result, "Same employee id with first schedule finish time in between second schedule - Overlapping - Test failed");

            //same employee id with second schedule finish time in between second schedule
            //first schedule (09:00am - 05:00pm) and second schedule (08:30am - 12:00pm)
            result = _scheduleService.isOverlapping(ts1, ts4);

            //In case return error user allowed to see what is the return error
            Console.WriteLine(result.ToString());

            //This is to check if return valued is return as expected for subordinate 3
            Assert.IsTrue(result, "Same employee id with second schedule finish time in between second schedule - Overlapping - Test failed");

            //same employee id with no overlapping
            //employee 1 (08:30am - 12:00pm) and employee 1 (12:30pm - 03:00pm)
            result = _scheduleService.isOverlapping(ts4, ts5);

            //In case return error user allowed to see what is the return error
            Console.WriteLine(result.ToString());

            //This is to check if return valued is return as expected for subordinate 3
            Assert.IsFalse(result, "Same employee id with no overlapping - No overlapping - Test failed");
        }
 /// <summary>
 /// Patikrina ar galima apkeisti grupe
 /// </summary>
 /// <param name="first">Paskaita, kurios grupes keitima tikrins</param>
 /// <param name="second">Paskaita, kuriuos laiku turi buti laisva grupe</param>
 /// <returns>true or false</returns>
 private bool isPossibleToChangeGroup(Lecture first, Lecture second)
 {
     if (first.WeekdayID != null && second.WeekdayID != null && first.LectureTimeID != null && second.LectureTimeID != null)
     {
         TimeSchedule firstGroup = Schedule(first.GroupID, "ClassRoomID");
         return(firstGroup.isFree(second.WeekdayID ?? 0, second.LectureTimeID ?? 0));
     }
     return(false);
 }
 /// <summary>
 /// Patikrina ar galima apkeisti destytoja
 /// </summary>
 /// <param name="first">Paskaita, kurios destytojo keitima tikrins</param>
 /// <param name="second">Paskaita, kuriuos laiku turi buti laisvas destytojas</param>
 /// <returns>true or false</returns>
 private bool isPossibleToChangeTeacher(Lecture first, Lecture second)
 {
     if (first.WeekdayID != null && second.WeekdayID != null && first.LectureTimeID != null && second.LectureTimeID != null)
     {
         TimeSchedule firstTeacher = Schedule(first.TeacherID, "TeacherID");
         return(firstTeacher.isFree(second.WeekdayID ?? 0, second.LectureTimeID ?? 0));
     }
     return(false);
 }
        public ScheduleDisplay(TimeSchedule _TimeSchedule, int GridRow, int GridColum)
        {
            InitializeComponent();
            this.txbEmployee.Text = _TimeSchedule.Name;
            this.txbTime.Text     = _TimeSchedule.Time;

            Grid.SetRow(this, GridRow);
            Grid.SetColumn(this, GridColum);
        }
    //protected void cbSelectedSchedule_Callback(object source, DevExpress.Web.ASPxCallback.CallbackEventArgs e)
    //{
    //    int index = int.Parse(e.Parameter);
    //    VOSchedule vo = (VOSchedule)gridSchedules.GetRow(index);
    //    Session["ctrls_ScheduleControl_SelectedSchedule"] = vo;
    //}


    protected void cbpTextScheduleEdit_Callback(object source, DevExpress.Web.ASPxClasses.CallbackEventArgsBase e)
    {
        // VOSchedule vo = (VOSchedule)Session["ctrls_ScheduleControl_SelectedSchedule"];
        int          index = int.Parse(e.Parameter);
        TimeSchedule vo    = (TimeSchedule)gridSchedules.GetRow(index);

        textScheduleEdit.Text  = vo.Title.ToString();
        textScheduleEdit.Value = vo.ID;
        labelSchedule.Text     = vo.Title.ToString();
    }
        public IHttpActionResult Post(TimeSchedule timeSchedule)
        {
            //timeSchedule.Id = Guid.NewGuid()

            timeSchedule.IsActive = true;
            this.timeScheduleRepository.Insert(timeSchedule);
            string uri = Url.Link("GetById", new { id = timeSchedule.Id });

            return(Created(uri, timeSchedule));
        }
Ejemplo n.º 14
0
        public TimeSchedule GetTimeScheduleofEvent(int eventId)
        {
            var eventData = _contentService.GetById(eventId);

            TimeSchedule eventItem = new TimeSchedule
            {
                Occurrences = Convert.ToString(eventData.GetValue("EventOccurance")),
            };

            return(eventItem);
        }
Ejemplo n.º 15
0
 public ActionResult DeleteSchedule(TimeSchedule time)
 {
     if (Session["User"] != null)
     {
         TimeSchedule timeSchedule = timeScheduleRepository.Get(time.Id);
         return(View(timeSchedule));
     }
     else
     {
         return(Redirect("/"));
     }
 }
Ejemplo n.º 16
0
 public ActionResult EditTimeSchedule(int id)
 {
     if (Session["User"] != null)
     {
         TimeSchedule timeSchedule = timeScheduleRepository.Get(id);
         return(View(timeSchedule));
     }
     else
     {
         return(Redirect("/"));
     }
 }
Ejemplo n.º 17
0
 public Course(Stream stream, TimeSchedule timeSchedule, DateTime startDate, DateTime endDate, string title)
 {
     Stream       = stream;
     TimeSchedule = timeSchedule;
     StartDate    = startDate;
     EndDate      = endDate;
     Title        = title;
     Students     = new List <StudentPerCourse>();
     Trainers     = new List <TrainerPerCourse>();
     Assignments  = new List <Assignment>();
     Schedules    = new List <Schedule>();
 }
Ejemplo n.º 18
0
        public static Promotion BuildRecurrentPromotion(BasePattern pattern, TimeSchedule timeSchedule, DateRange effectiveDateRange)
        {
            var promotion = BuildDefinitePromotion(null);

            promotion.Period = new Recurrent
            {
                Pattern            = pattern,
                TimeSchedule       = timeSchedule,
                EffectiveDateRange = effectiveDateRange
            };
            return(promotion);
        }
        public IHttpActionResult Get(int id)
        {
            TimeSchedule timeSchedule = timeScheduleRepository.Get(id);

            if (timeSchedule == null)
            {
                return(StatusCode(HttpStatusCode.NoContent));
            }
            else
            {
                return(Ok(timeSchedule));
            }
        }
Ejemplo n.º 20
0
        private void btnAdd_Click(object sender, EventArgs e)
        {
            TimeSchedule ts = new TimeSchedule();

            ts.TimeStart = mcmbTstarthours.Text + ":" + mcmbTstartmins.Text + ":" + mcmbTstartsec.Text;
            ts.TimeEnd   = mcmbTendhours.Text + ":" + mcmbTendmins.Text + ":" + mcmbTendsec.Text;
            db.TimeSchedules.InsertOnSubmit(ts);
            db.SubmitChanges();
            MessageBox.Show("ADDED");
            var timesched = from t in db.TimeSchedules
                            select t;

            dgvSchedTime.DataSource = timesched;
        }
Ejemplo n.º 21
0
        public ActionResult AddSchedule(TimeSchedule timeSchedule)
        {
            if (ModelState.IsValid)
            {
                Guid UserId = transportRepository.GetByTransportId(timeSchedule.TransportId).DriverId;
                timeSchedule.UserId   = UserId;
                timeSchedule.IsActive = true;
                timeScheduleRepository.Insert(timeSchedule);


                return(RedirectToAction("ViewTimeSchedule", "TimeSchedule"));
            }
            return(RedirectToAction("AddSchedule", "TimeSchedule"));
        }
        public Initialization_TimeSchedule()
        {
            TimeSchedule ts1 = new TimeSchedule()
            {
                TimeScheduleId = 1,
                TimeInterval   = "09:00 – 10:30"
            };
            TimeSchedule ts2 = new TimeSchedule()
            {
                TimeScheduleId = 2,
                TimeInterval   = "10:45 – 12:15"
            };
            TimeSchedule ts3 = new TimeSchedule()
            {
                TimeScheduleId = 3,
                TimeInterval   = "13:00 – 14:30"
            };
            TimeSchedule ts4 = new TimeSchedule()
            {
                TimeScheduleId = 4,
                TimeInterval   = "14:45 – 16:15"
            };
            TimeSchedule ts5 = new TimeSchedule()
            {
                TimeScheduleId = 5,
                TimeInterval   = "16:30 – 18:00"
            };
            TimeSchedule ts6 = new TimeSchedule()
            {
                TimeScheduleId = 6,
                TimeInterval   = "18:15 – 19:45"
            };
            TimeSchedule ts7 = new TimeSchedule()
            {
                TimeScheduleId = 7,
                TimeInterval   = "20:00 – 21:30"
            };

            _timeSchedules.Add(ts1);
            _timeSchedules.Add(ts2);
            _timeSchedules.Add(ts3);
            _timeSchedules.Add(ts4);
            _timeSchedules.Add(ts5);
            _timeSchedules.Add(ts6);
            _timeSchedules.Add(ts7);
        }
 private void SetScheduleDetail(TimeSchedule s)
 {
     if (s != null)
     {
         this.ScheduleID      = s.ID;
         this.ScheduleDetails = s.ScheduleDetails;
         gridScheduleDetail.DataBind();
         lblScheduleTitle.Text = string.Format("{0} : {1}", s.Code, s.Title.ToString(base.LanguageCode));
     }
     else
     {
         this.ScheduleID      = 0;
         this.ScheduleDetails = new List <ScheduleDetail>();
         gridScheduleDetail.DataBind();
         lblScheduleTitle.Text = "No Schedule.";
     }
 }
Ejemplo n.º 24
0
    protected void cbSelectedSchedule_Callback(object sender, DevExpress.Web.ASPxCallback.CallbackEventArgs e)
    {
        JsonObjectCollection objs = new JsonObjectCollection();

        string[]     parameters = e.Parameter.Split(';');
        TimeSchedule schedule   = null;

        switch (parameters[0])
        {
        case "gdv":
            if (!string.IsNullOrEmpty(parameters[1]))
            {
                schedule = (TimeSchedule)gdvSchedules.GetRow(int.Parse(parameters[1]));
            }
            break;

        case "cbo":
            if (!string.IsNullOrEmpty(parameters[1]))
            {
                schedule = TimeSchedule.Find(iSabayaContext, int.Parse(parameters[1]));
            }
            break;

        default: break;
        }
        if (schedule != null)
        {
            objs.Add(new JsonStringValue("Title", schedule.Title.ToString(base.LanguageCode)));
            objs.Add(new JsonNumericValue("ScheduleID", schedule.ID));
            if (parameters[0].Equals("gdv"))
            {
                objs.Add(new JsonNumericValue("cboIndex", cboSchedule.Items.FindByValue(schedule.ID).Index));
            }
            else
            {
                objs.Add(new JsonNumericValue("cboIndex", cboSchedule.SelectedIndex));
            }
        }
        else
        {
            objs.Add(new JsonStringValue("Title", string.Empty));
            objs.Add(new JsonNumericValue("ScheduleID", 0));
            objs.Add(new JsonNumericValue("cboIndex", -1));
        }
        e.Result = objs.ToString();
    }
Ejemplo n.º 25
0
        private void LoadScheduleMorning()
        {
            int    trigger = 0;
            int    count   = 0;
            string date    = string.Format("{0:d2}.{1:d2}", DateTime.Now.Day, DateTime.Now.Month);

            for (int i = 0; i < Form1.timeSchedule.listVideosMorning.Count; i++)
            {
                if (i != 0 && !TimeSchedule.CompateSheduleLine(Form1.timeSchedule.listVideosMorning[i - 1], Form1.timeSchedule.listVideosMorning[i]))
                {
                    morningListSchedules.Add(new ListXml("Morning" + count + "_" + date, true, Form1.timeSchedule.workTimeMorning[trigger].GetBeginTime().ToString(), Form1.timeSchedule.workTimeMorning[i - 1].GetEndTime().ToString(), "1111111"));
                    morningListSchedules[morningListSchedules.Count - 1].AddVideos(Form1.timeSchedule.listVideosMorning[i - 1]);
                    trigger = i;
                    count++;
                }
            }
            morningListSchedules.Add(new ListXml("Morning" + count + "_" + date, true, Form1.timeSchedule.workTimeMorning[trigger].GetBeginTime().ToString(), Form1.timeSchedule.workTimeMorning[Form1.timeSchedule.workTimeMorning.Count - 1].GetEndTime().ToString(), "1111111"));
            morningListSchedules[morningListSchedules.Count - 1].AddVideos(Form1.timeSchedule.listVideosMorning[Form1.timeSchedule.listVideosMorning.Count - 1]);
        }
        public HomeScheduleDisplay(TimeSchedule _TimeSchedule, int GridRow)
        {
            InitializeComponent();
            this.homeTxbEmployee.Text = _TimeSchedule.Name;
            this.homeTxbTime.Text     = _TimeSchedule.Time;

            this.scheduleButton.BorderThickness = new Thickness(0, 0, 0, 0);
            if (GridRow % 2 == 0)
            {
                this.scheduleButton.Background  = Brushes.Azure;
                this.scheduleButton.BorderBrush = Brushes.Azure;
            }
            else
            {
                var new_color = new BrushConverter();
                this.scheduleButton.Background  = (Brush)new_color.ConvertFrom("#FFBDE5E5");
                this.scheduleButton.BorderBrush = (Brush)new_color.ConvertFrom("#FFBDE5E5");
            }


            Grid.SetRow(this, GridRow);
            Grid.SetColumn(this, 0);
        }
        /// <summary>
        /// Pranesimas konsolei, jei neimanoams undo
        /// </summary>
        /// <param name="first">Paskaita</param>
        /// <param name="log">logas</param>
        private void UndoMessage(Lecture first, Log log)
        {
            int index1 = log.LogItem.IndexOf("Message");

            if (index1 != -1)
            {
                string result = log.LogItem.Remove(index1);
                log.LogItem = result;
            }
            TimeSchedule teacher       = Schedule(first.TeacherID, "TeacherID");
            bool         teacherIsFree = teacher.isFree(log.OldWeekdayID ?? 0, log.OldLectureTimeID ?? 0);

            if (!teacherIsFree)
            {
                string msg = " Undo is impossible due to " + first.Teacher.FirstName + " " + first.Teacher.LastName + " schedule";
                log.LogItem += msg;
                return;
            }
            TimeSchedule classRoom       = Schedule(first.ClassRoomID, "ClassRoomID");
            bool         classRoomIsFree = classRoom.isFree(log.OldWeekdayID ?? 0, log.OldLectureTimeID ?? 0);

            if (!classRoomIsFree)
            {
                string msg = " Undo is impossible due to " + first.Teacher.FirstName + " " + first.Teacher.LastName + " schedule";
                log.LogItem += msg;
                return;
            }
            TimeSchedule group       = Schedule(first.GroupID, "GroupID");
            bool         groupIsFree = group.isFree(log.OldWeekdayID ?? 0, log.OldLectureTimeID ?? 0);

            if (!groupIsFree)
            {
                string msg = " Undo is impossible due to " + first.Teacher.FirstName + " " + first.Teacher.LastName + " schedule";
                log.LogItem += msg;
                return;
            }
        }
        /// <summary>
        /// Paskaitu laiko priskirimo metodas
        /// </summary>
        public void Generate()
        {
            //Visi galimi laikai
            List <LectureTime> lecturesTimes = db.LectureTimes.ToList();
            //Visos galimso dienos
            List <Weekday> weekdays = db.Weekdays.ToList();
            //Visos klasės su tvarkaraščiais
            List <ClassRoom>    classrooms    = db.ClassRooms.ToList();
            List <TimeSchedule> classSchedule = new List <TimeSchedule>();

            foreach (ClassRoom item in classrooms)
            {
                TimeSchedule schedule = new TimeSchedule(item.ID, lecturesTimes.Count);
                classSchedule.Add(schedule);
            }
            //Visi dėstytojai su tvarkaraščiais
            List <Teacher>      teachers         = db.Teachers.ToList();
            List <TimeSchedule> teachersSchedule = new List <TimeSchedule>();

            foreach (Teacher item in teachers)
            {
                TimeSchedule schedule = new TimeSchedule(item.ID, lecturesTimes.Count);
                teachersSchedule.Add(schedule);
            }
            //Visos grupės su tvarkaraščiais
            List <Group>        groups         = db.Groups.ToList();
            List <TimeSchedule> groupsSchedule = new List <TimeSchedule>();

            foreach (Group item in groups)
            {
                TimeSchedule schedule = new TimeSchedule(item.ID, lecturesTimes.Count);
                groupsSchedule.Add(schedule);
            }

            foreach (Lecture lecture in db.Lectures)
            {
                //Išrenkam reikiamus dalykus
                Teacher      currTeacher      = lecture.Teacher;
                Group        currGroup        = lecture.Group;
                ClassRoom    currClass        = lecture.ClassRoom;
                TimeSchedule currTeacherSched = teachersSchedule.Where(x => x.ID == currTeacher.ID).Select(x => x).FirstOrDefault();
                TimeSchedule currGroupChed    = groupsSchedule.Where(x => x.ID == currGroup.ID).Select(x => x).FirstOrDefault();
                TimeSchedule currClassSched   = classSchedule.Where(x => x.ID == currClass.ID).Select(x => x).FirstOrDefault();
                //Jei nėra laiko, ieškom laisvo laiko
                if (lecture.LectureTimeID == null && lecture.WeekdayID == null)
                {
                    foreach (Weekday day in weekdays)
                    {
                        foreach (LectureTime time in lecturesTimes)
                        {
                            //Patikrinam ar šiuo laiku dėstytojas,grupė ir auditorija yra laisva
                            if (currTeacherSched.isFree(day.ID, time.ID) && currGroupChed.isFree(day.ID, time.ID) && currClassSched.isFree(day.ID, time.ID))
                            {
                                lecture.LectureTimeID = time.ID;
                                lecture.WeekdayID     = day.ID;
                                currTeacherSched.setTrue(day.ID, time.ID);
                                currGroupChed.setTrue(day.ID, time.ID);
                                currClassSched.setTrue(day.ID, time.ID);
                                break;
                            }
                        }
                        //Patirkinam ar radom laiką paskaitai
                        if (lecture.LectureTimeID != null && lecture.WeekdayID != null)
                        {
                            break;
                        }
                    }
                }
                //Jei laikas priskirtas pasižymime į tvarkaraščius
                else
                {
                    currTeacherSched.setTrue(lecture.WeekdayID ?? 0, lecture.LectureTimeID ?? 0);
                    currGroupChed.setTrue(lecture.WeekdayID ?? 0, lecture.LectureTimeID ?? 0);
                    currClassSched.setTrue(lecture.WeekdayID ?? 0, lecture.LectureTimeID ?? 0);
                }
            }
            db.SaveChanges();
        }
Ejemplo n.º 29
0
 public VOSchedule(TimeSchedule instance)
 {
     this.instance = instance;
 }
    public void LoadSchedule()
    {
        TimeSchedule sche = TimeSchedule.Find(iSabayaContext, this.ScheduleID);

        SetScheduleDetail(sche);
    }