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); }
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); }
public bool IsReadOnly(IStaffDirectory item) { if (CurrentUser.HasPriv(ClientPrivilege.Administrator | ClientPrivilege.Developer)) { return(false); } if (item.ClientID == CurrentUser.ClientID) { return(false); } return(true); }
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); }
public void SaveStaffDirectory(IStaffDirectory sd) { throw new NotImplementedException(); }
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."); } }
public string GetPhone(IStaffDirectory item, string format = null) { PhoneNumber phoneNumber = PhoneNumber.Parse(item.ContactPhone, format); return(phoneNumber.ToString()); }
public string GetWorkingHoursText(IStaffDirectory sd) { StaffTimeInfoCollection result = new StaffTimeInfoCollection(sd.HoursXML); return(result.ToString()); }