Пример #1
0
        public bool GetHoursXML(IStaffDirectory sd, NameValueCollection formData)
        {
            int errors = 0;

            StaffTimeInfoCollection staffTime = new StaffTimeInfoCollection(sd.HoursXML);

            WorkHoursPart[] parts = { WorkHoursPart.MorningStart, WorkHoursPart.MorningEnd, WorkHoursPart.AfternoonStart, WorkHoursPart.AfternoonEnd };

            foreach (var timeInfo in staffTime)
            {
                string chkName = string.Format("{0}Checked", timeInfo.WorkHoursDayName());
                timeInfo.Value.Checked = formData[chkName] == "on";

                foreach (WorkHoursPart part in parts)
                {
                    string txtName = timeInfo.WorkHoursTimeTextBoxName(part);

                    string val = formData[txtName];

                    if (timeInfo.Value.Checked && string.IsNullOrEmpty(val))
                    {
                        AppendAlert(string.Format("Missing time for {0}: {1}", timeInfo.WorkHoursDayName(), GetWorkHoursPartText(part)));
                        errors++;
                    }
                    else
                    {
                        timeInfo.SetValue(val, part);
                    }
                }
            }

            sd.HoursXML = staffTime.ToXML().OuterXml;

            return(true);
        }
Пример #2
0
        private void SaveStaffDirectory(IStaffDirectory sd)
        {
            var entity = DA.Current.Single <StaffDirectory>(sd.StaffDirectoryID);

            entity.Client       = DA.Current.Single <Client>(sd.ClientID);
            entity.ContactPhone = sd.ContactPhone;
            entity.Deleted      = sd.Deleted;
            entity.HoursXML     = sd.HoursXML;
            entity.LastUpdate   = sd.LastUpdate;
            entity.Office       = sd.Office;
            DA.Current.SaveOrUpdate(entity);
        }
Пример #3
0
        public bool IsReadOnly(IStaffDirectory item)
        {
            if (CurrentUser.HasPriv(ClientPrivilege.Administrator | ClientPrivilege.Developer))
            {
                return(false);
            }

            if (item.ClientID == CurrentUser.ClientID)
            {
                return(false);
            }

            return(true);
        }
Пример #4
0
        public bool Validate(IStaffDirectory sd)
        {
            message = string.Empty;
            int errors = 0;

            PhoneNumber phoneNumber = new PhoneNumber(PhoneAreaCode, PhonePrefix, PhoneLineNumber);

            if (!phoneNumber.IsValid())
            {
                AppendAlert("Invalid phone number.");
                errors++;
            }

            if (errors > 0)
            {
                return(false);
            }

            sd.ContactPhone = phoneNumber.ToString();
            sd.Office       = Office;

            return(true);
        }
Пример #5
0
 public void SaveStaffDirectory(IStaffDirectory sd)
 {
     throw new NotImplementedException();
 }
Пример #6
0
                public static Feed CreateFeed(FeedFormats format, string userName)
                {
                    switch (format)
                    {
                    case FeedFormats.Calendar:
                        DataTable dt = FeedGenerator.InitCalendarTable();
                        Dictionary <string, object> search_params = new Dictionary <string, object>();
                        IStaffDirectory             sd            = null;
                        if (!string.IsNullOrEmpty(userName))
                        {
                            sd = ServiceProvider.Current.Data.Client.GetStaffDirectory(userName);
                        }
                        if (sd != null)
                        {
                            DateTime[] week = WeekArray(sd.LastUpdate);
                            StaffTimeInfoCollection staffTime = new StaffTimeInfoCollection(sd.HoursXML);
                            IClient c = ServiceProvider.Current.Data.Client.GetClient(sd.ClientID);
                            _ = new StaffDirectoryEntry()
                            {
                                StaffDirectoryID = sd.StaffDirectoryID,
                                ClientID         = sd.ClientID,
                                UserName         = c.UserName,
                                Privs            = c.Privs,
                                LName            = c.LName,
                                MName            = c.MName,
                                FName            = c.FName,
                                Hours            = staffTime.ToString(),
                                Email            = c.Email,
                                Phone            = c.Phone,
                                Office           = sd.Office,
                                Deleted          = sd.Deleted,
                                ReadOnly         = true
                            };

                            foreach (KeyValuePair <DayOfWeek, StaffTimeInfo> kvp in staffTime)
                            {
                                if (kvp.Value.Checked)
                                {
                                    DataRow  dr         = dt.NewRow();
                                    DateTime dtstart    = week[(int)kvp.Key].Add(kvp.Value.AM.Start.Value.Value);
                                    DateTime dtend      = week[(int)kvp.Key].Add(kvp.Value.PM.End.Value.Value);
                                    DateTime lunchStart = week[(int)kvp.Key].Add(kvp.Value.AM.End.Value.Value);
                                    DateTime lunchEnd   = week[(int)kvp.Key].Add(kvp.Value.PM.Start.Value.Value);
                                    dr["DTSTART"]       = ";TZID=America/New_York:" + dtstart.ToString("yyyyMMddTHHmmss");
                                    dr["DTEND"]         = ";TZID=America/New_York:" + dtend.ToString("yyyyMMddTHHmmss");
                                    dr["RRULE"]         = ":FREQ=WEEKLY;BYDAY=" + DayCode(kvp.Key);
                                    dr["DTSTAMP"]       = ":" + DateTime.Now.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");
                                    dr["UID"]           = ":staffdirectory_" + sd.StaffDirectoryID.ToString();
                                    dr["CREATED"]       = ":" + sd.LastUpdate.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");
                                    dr["LAST-MODIFIED"] = ":" + sd.LastUpdate.ToUniversalTime().ToString("yyyyMMddTHHmmssZ");
                                    dr["STATUS"]        = ":CONFIRMED";
                                    dr["SUMMARY"]       = ":" + sd.LName + " " + TimeRangeToString(dtstart, dtend);
                                    dr["DESCRIPTION"]   = ":Lunch: " + TimeRangeToString(lunchStart, lunchEnd);
                                    //BEGIN:VEVENT
                                    //DTSTART;TZID=America/New_York:20120914T080000
                                    //DTEND;TZID=America/New_York:20120914T170000
                                    //RRULE:FREQ=WEEKLY;BYDAY=FR
                                    //DTSTAMP:20120911T212356Z
                                    //UID:[email protected]
                                    //CREATED:20120911T212251Z
                                    //LAST-MODIFIED:20120911T212251Z
                                    //STATUS:CONFIRMED
                                    //SUMMARY:Getty\, James 8am - 5pm
                                    //DESCRIPTION:Lunch: 12pm - 12:30pm
                                    //SEQUENCE:0
                                    //END:VEVENT
                                    //dr["DTSTART"] = week[(int)kvp.Key].Add(kvp.Value.AM.Start.Value.Value).ToUniversalTime().ToString("yyyyMMdd'T'HHmmss'Z'");
                                    //dr["DTEND"] = week[(int)kvp.Key].Add(kvp.Value.PM.End.Value.Value).ToUniversalTime().ToString("yyyyMMdd'T'HHmmss'Z'");
                                    //dr["UID"] = sd.StaffDirectoryID;
                                    //dr["CREATED"] = DateTime.Now.ToUniversalTime().ToString("yyyyMMdd'T'HHmmss'Z'");
                                    //dr["LAST-MODIFIED"] = DateTime.Now.ToUniversalTime().ToString("yyyyMMdd'T'HHmmss'Z'");
                                    //dr["STATUS"] = "CONFIRMED";
                                    //dr["SUMMARY"] = string.Format("{0} | {1} ({2})", item.ResourceName, item.DisplayName, item.Email);
                                    //dr["DESCRIPTION"] = string.Format(
                                    //    "Activity: {0}\\nStatus: {1}\\nScheduled Start: {2}\\nScheduled End: {3}\\nActual Start: {4}\\nActual End: {5}",
                                    //    item.ActivityName, GetReservationStatus(item), GetDateTime(item.BeginDateTime), GetDateTime(item.EndDateTime), GetDateTime(item.ActualBeginDateTime), GetDateTime(item.ActualEndDateTime)
                                    //);
                                    dt.Rows.Add(dr);
                                }
                            }
                        }
                        return(new Feed(format, dt));

                    default:
                        throw new NotImplementedException("Feed format has not been implemented.");
                    }
                }
Пример #7
0
        public string GetPhone(IStaffDirectory item, string format = null)
        {
            PhoneNumber phoneNumber = PhoneNumber.Parse(item.ContactPhone, format);

            return(phoneNumber.ToString());
        }
Пример #8
0
        public string GetWorkingHoursText(IStaffDirectory sd)
        {
            StaffTimeInfoCollection result = new StaffTimeInfoCollection(sd.HoursXML);

            return(result.ToString());
        }