/* private void CheckSuperUser() { LayoutName = null; if ((!(bool)Session["isAdmin"]) && (!(bool)Session["isRoot"])) throw new Unauthorized(""); } */ private void CheckPermissions(Schedule schedule) { /* LayoutName = null; if (schedule != null) { User user = (Session.Contains("User")) ? (User) Session["User"] : null; if (user != null) { if ((user.Id != schedule.Owner.Id) || (((bool)Session["isAdmin"]) || ((bool)Session["isRoot"]))) { bool shared = false; /* foreach (Schedule s in user.Schedule.SharedSchedules) if (s.Id == schedule.Id) { shared = true; break; }* if ((!shared) && ((!(bool)Session["isAdmin"]) && (!(bool)Session["isRoot"]))) throw new Unauthorized(); } } else throw new Unauthorized(); } else throw new Unauthorized(); */ }
/// <summary> /// Return all events in a day /// </summary> /// <param name="sdel">Schedule where search</param> /// <param name="dt">DateTime with the day</param> public static ScheduledEvent[] GetEventsInDay(Schedule sdle, DateTime dt) { DateTime dtNextDay = dt.AddDays(1); DateTime dtBeforeDay = dt.AddSeconds(-1); SimpleQuery q = new SimpleQuery(typeof(ScheduledEvent), @" FROM ScheduledEvent S WHERE S.Schedule = ? AND ((S.StartDate >= ?) AND (S.EndDate < ?) OR (S.StartDate > ?) AND (S.StartDate < ?) AND (S.EndDate > ?) OR (S.StartDate < ?) AND (S.EndDate < ?) AND (S.EndDate > ?) OR (S.StartDate < ?) AND (S.EndDate > ?)) ", sdle, dt, dtNextDay, dtBeforeDay, dtNextDay, dt, dt, dtNextDay, dtBeforeDay, dt, dt); return (ScheduledEvent[]) ExecuteQuery(q); }
/// <summary> /// Return all events in year and month /// </summary> /// <param name="sdel">Schedule where search</param> /// <param name="year">Year where search</param> /// <param name="month">Month to get the events</param> public static ScheduledEvent[] GetEventsInMonth(Schedule sdle, int year, int month) { // DateTime sd = new DateTime(year, month, System.DateTime.DaysInMonth(year, month), 23, 59, 59); // DateTime ed = new DateTime(year, month, 1, 0, 0, 0); DateTime beginMonth = new DateTime(year, month, 1, 0, 0, 0); DateTime endMonth = new DateTime(year, month, System.DateTime.DaysInMonth(year, month), 23, 59, 59); SimpleQuery q = new SimpleQuery(typeof(ScheduledEvent), @" FROM ScheduledEvent S WHERE S.Schedule = ? AND S.StartDate < ? AND S.EndDate > ? ", sdle, endMonth, beginMonth); return (ScheduledEvent[]) ExecuteQuery(q); }
public static ScheduledEvent[] GetNextOrderedEvents(Schedule sdle, DateTime d) { //string dt = Shidix.PublicAPI.Date2Postgres(d); //Shidix.PublicAPI.Logger("Schedule id= " + sdle.Id); //Shidix.PublicAPI.Logger("datetime = " + dt); SimpleQuery q = new SimpleQuery(typeof(ScheduledEvent), @" from ScheduledEvent S where S.Schedule = ? and S.StartDate > ? order by S.StartDate", sdle, d); return (ScheduledEvent[]) ExecuteQuery(q); }
// and S.StartDate <= ? // and S.EndDate >= ? public static ScheduledEvent[] GetOrderedEvents(Schedule sdle) { SimpleQuery q = new SimpleQuery(typeof(ScheduledEvent), @" from ScheduledEvent S where S.Schedule = ? order by S.StartDate", sdle.Id); return (ScheduledEvent[]) ExecuteQuery(q); }
public static ScheduledEvent[] GetEventsOverlap(Schedule s, ScheduledEvent sdle) { SimpleQuery q = new SimpleQuery(typeof(ScheduledEvent), @" from ScheduledEvent S where S.Schedule = ? and ((S.StartDate <= ? and S.EndDate >= ?) or (S.StartDate <= ? and S.EndDate >= ?) or (S.StartDate >= ? and S.EndDate <= ?)) and S.Id != ? order by S.StartDate", s, sdle.StartDate, sdle.StartDate, sdle.EndDate, sdle.EndDate, sdle.StartDate, sdle.EndDate, sdle.Id); // order by S.StartDate", s, sdle.StartDate, sdle.StartDate, sdle.Id); return (ScheduledEvent[]) ExecuteQuery(q); }
public void ShareSchedules(Schedule sche1, Schedule sche2) { bool exist = false; foreach (Schedule s in sche1.SharedSchedules) if (s.Id == sche2.Id) exist = true; if (exist == false) { sche1.SharedSchedules.Add(sche2); sche1.Save(); } else System.Console.WriteLine("Ya estaba compartida"); }
public void SaveSchedule([ARFetch ("Id", Create = false)] User user) { if (user != null) { if (Schedule.FindByUser(user) == null) { Schedule schedule = new Schedule(); schedule.Owner = user; schedule.Save(); } } PropertyBag["user"] = user; Hashtable parameters = new Hashtable(); parameters["id"] = user.Id; RedirectToAction("showschedule", parameters); }
private void Calendar(int year, int month, Schedule s) { ScheduledEvent[] sdles = ScheduledEvent.GetEventsInMonth(s, year, month); int[] dayEvents = CountDayEvents(sdles, year, month); /* foreach (Schedule s in user.Schedule.SharedSchedules) { ScheduledEvent[] sdlesTemp = ScheduledEvent.GetEventsInMonth(s, year, month); int[] dayEventsTemp = CountDayEvents(sdlesTemp, year, month); for (int i = 1; i <= daysInMonth; i++) dayEvents[i] += dayEventsTemp[i]; sdles = AddScheduledEvent(sdles, sdlesTemp); } */ IList monthMatrix = BuildMonth(year,month); PropertyBag["selectedMonth"] = month; PropertyBag["selectedYear"] = year; PropertyBag["monthMatrix"] = monthMatrix; PropertyBag["dayEvents"] = dayEvents; ScheduledEvent[] events = ScheduledEvent.GetNextOrderedEvents(s, DateTime.Now); // foreach (Schedule s in user.Schedule.SharedSchedules) // events = AddScheduledEvent(events, ScheduledEvent.GetNextOrderedEvents(s, DateTime.Now)); if (events.Length > 5) { ScheduledEvent[] sdlesTemp = new ScheduledEvent[5]; Array.Copy(events, sdlesTemp, 5); events = sdlesTemp; } PropertyBag["events"] = events; PropertyBag["today"] = DateTime.Now.ToShortDateString(); }