コード例 #1
0
    public ActionResult Edit(string id)
    {
        var mode = Mode(id);

        ViewData["Mode"] = mode;

        var masterId = Request.QueryString["master"];

        var            row    = new EventManager().Get(id) ?? new EventManager.Event();
        var            master = new EventManager().Get(masterId) ?? new EventManager.Event();
        var            e      = new EventManager.Event();
        RecurrenceRule _rule;

        switch (mode)
        {
        case EventMode.Master:
            _rule      = RecurrenceRule.Decode(master.Recurrence);
            e.Start    = master.Start;
            e.End      = master.End;
            e.Text     = master.Text;
            e.Resource = master.Resource;
            break;

        case EventMode.NewException:
            _rule = RecurrenceRule.Exception;
            DateTime start    = Occurrence;
            TimeSpan duration = master.End - master.Start;
            DateTime end      = start + duration;
            e.Start    = start;
            e.End      = end;
            e.Text     = master.Text;
            e.Resource = master.Resource;
            break;

        case EventMode.Exception:
            _rule      = RecurrenceRule.Exception;
            e.Start    = row.Start;
            e.End      = row.End;
            e.Text     = row.Text;
            e.Resource = row.Resource;
            break;

        case EventMode.Regular:
            _rule      = RecurrenceRule.NoRepeat;
            e.Start    = row.Start;
            e.End      = row.End;
            e.Text     = row.Text;
            e.Resource = row.Resource;
            break;

        default:
            throw new ArgumentOutOfRangeException();
        }

        ViewData["RecurrenceJson"] = new HtmlString(_rule.ToJson());

        return(View(e));
    }
コード例 #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.Cache.SetNoStore();

        string data = Request.QueryString["hash"];

        if (Session[data] == null)
        {
            throw new Exception("The session data expired.");
        }
        table = (DataTable)Session[data];

        DataRow row    = table.Rows.Find(Request.QueryString["id"]);
        DataRow master = table.Rows.Find(Request.QueryString["master"]);

        if (!IsPostBack)
        {
            switch (Mode)
            {
            case EventMode.Master:
                _rule             = RecurrenceRule.Decode((string)master["recurrence"]);
                TextBoxStart.Text = ((DateTime)master["start"]).ToString();
                TextBoxEnd.Text   = ((DateTime)master["end"]).ToString();
                TextBoxName.Text  = (string)master["name"];
                break;

            case EventMode.NewException:
                _rule = RecurrenceRule.Exception;
                DateTime start    = Occurrence;
                TimeSpan duration = (DateTime)master["end"] - (DateTime)master["start"];
                DateTime end      = start + duration;
                TextBoxStart.Text = start.ToString();
                TextBoxEnd.Text   = end.ToString();
                TextBoxName.Text  = (string)master["name"];
                break;

            case EventMode.Exception:
                _rule             = RecurrenceRule.Exception;
                TextBoxStart.Text = ((DateTime)row["start"]).ToString();
                TextBoxEnd.Text   = ((DateTime)row["end"]).ToString();
                TextBoxName.Text  = (string)row["name"];
                break;

            case EventMode.Regular:
                _rule             = RecurrenceRule.NoRepeat;
                TextBoxStart.Text = ((DateTime)row["start"]).ToString();
                TextBoxEnd.Text   = ((DateTime)row["end"]).ToString();
                TextBoxName.Text  = (string)row["name"];
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
    }