コード例 #1
0
        /// <summary>
        /// The post.
        /// </summary>
        /// <param name="officeNumber">
        /// The office number.
        /// </param>
        /// <param name="holiday">
        /// The holiday.
        /// </param>
        /// <returns>
        /// The <see cref="HttpResponseMessage"/>.
        /// </returns>
        public HttpResponseMessage Post(string officeNumber, Holiday holiday)
        {
            AccessControl.VerifyUserAccessToOffice(officeNumber);
            if (string.IsNullOrEmpty(officeNumber) || string.IsNullOrEmpty(holiday.Description))
            {
                return(Request.CreateResponse(HttpStatusCode.PreconditionFailed, "Invalid Holiday..!!!"));
            }

            try
            {
                var officeHoliday = new OfficeHoliday {
                    HolidayDate = DateTime.Parse(holiday.Date), OfficeNum = officeNumber, Description = holiday.Description
                };

                // Check for duplicate entries
                IList <OfficeHoliday> existingHolidays = this.it2Business.GetAllHolidaysForOffice(officeNumber);
                IList <OfficeHoliday> results          = existingHolidays.Where(d => d.HolidayDate == officeHoliday.HolidayDate).ToList();
                if (results.Count == 0)
                {
                    officeHoliday.OfficeNum = officeNumber;
                    this.it2Business.SaveHoliday(officeHoliday);
                    var response = Request.CreateResponse(HttpStatusCode.OK, "Holiday Created");
                    return(response);
                }

                return(Request.CreateResponse(HttpStatusCode.BadRequest, "Holiday Already Exists"));
            }
            catch (Exception ex)
            {
                var msg = string.Format("Post(officeNumber = {0} {1} {2}", officeNumber, "\n", ex);
                return(HandleExceptions.LogExceptions(msg, Logger, ex));
            }
        }
コード例 #2
0
        public void Run(params string[] args)
        {
            IEnumerable <OfficeHoliday> toshowHolidays  = null;
            IEnumerable <Tenant>        toshowTenant    = null;
            IEnumerable <Extension>     toshowExtension = null;
            PhoneSystem ps = PhoneSystem.Root;

            switch (args[1])
            {
            case "setofficetime":
                if (args[2] == "office")
                {
                    //set tenant data
                    var tenant = ps.GetTenant();
                    tenant.Hours = UpdateSchedule(tenant.Hours, args[3], args.Skip(4));
                    tenant.Save();
                    toshowTenant = new Tenant[] { tenant };
                }
                else
                {
                    var dn = PhoneSystem.Root.GetDNByNumber(args[2]) as Extension;     //valid only for extension object
                    dn.Hours = UpdateSchedule(dn.Hours, args[3], args.Skip(4));
                    dn.Save();
                    toshowExtension = new Extension[] { dn };
                }
                break;

            case "setbreaktime":
                if (args[2] == "office")
                {
                    //set tenant data
                    var tenant = ps.GetTenant();
                    tenant.BreakTime = UpdateSchedule(tenant.BreakTime, args[3], args.Skip(4));
                    tenant.Save();
                    toshowTenant = new Tenant[] { tenant };
                }
                else
                {
                    var dn = PhoneSystem.Root.GetDNByNumber(args[2]) as Extension;     //valid only for extension object
                    dn.BreakTime = UpdateSchedule(dn.BreakTime, args[3], args.Skip(4));
                    dn.Save();
                    toshowExtension = new Extension[] { dn };
                }
                break;

            case "removeholiday":
            {
                using (var holiday = ps.GetTenant().GetOfficeHolidays().GetDisposer(x => x.Name == args[2]).ExtractFirstOrDefault())
                {
                    holiday.Delete();
                    Console.WriteLine($"{holiday.Name} deleted");
                    return;
                }
            }

            case "setholiday":
            {
                bool     hasendtime  = args.Length > 4;
                var      holiday     = ps.GetTenant().GetOfficeHolidays().GetDisposer(x => x.Name == args[2]).ExtractFirstOrDefault();
                var      paramsStart = args[3].Split('=');
                var      datestart   = paramsStart[0].Split('-');
                TimeSpan?startspan   = paramsStart.Length > 1 ? TimeSpan.Parse(paramsStart[1]) : (TimeSpan?)null;
                string[] dateend     = null;
                TimeSpan?endspan     = null;
                if (hasendtime)
                {
                    var paramsEnd = args[4].Split('=');
                    dateend = paramsEnd[0].Split('-');
                    endspan = paramsStart.Length > 1 ? TimeSpan.Parse(paramsEnd[1]) : (TimeSpan?)null;
                }
                if (holiday == null)
                {
                    if (!hasendtime)
                    {
                        holiday = ps.GetTenant().CreateOfficeHoliday(
                            args[2],
                            byte.Parse(datestart[2]),
                            byte.Parse(datestart[1]),
                            ushort.Parse(datestart[0]),
                            startspan);
                    }
                    else
                    {
                        holiday = ps.GetTenant().CreateOfficeHoliday(
                            args[2],
                            byte.Parse(datestart[2]),
                            byte.Parse(datestart[1]),
                            ushort.Parse(datestart[0]),
                            startspan,
                            byte.Parse(dateend[2]),
                            byte.Parse(dateend[1]),
                            ushort.Parse(dateend[0]),
                            endspan
                            );
                    }
                }
                else
                {
                    holiday.Day             = byte.Parse(datestart[2]);
                    holiday.Month           = byte.Parse(datestart[1]);
                    holiday.Year            = ushort.Parse(datestart[0]);
                    holiday.TimeOfStartDate = startspan.Value;
                    if (hasendtime)
                    {
                        holiday.DayEnd        = byte.Parse(dateend[2]);
                        holiday.MonthEnd      = byte.Parse(dateend[1]);
                        holiday.YearEnd       = ushort.Parse(dateend[0]);
                        holiday.TimeOfEndDate = endspan.Value;
                    }
                }
                holiday.Save();
                toshowHolidays = new OfficeHoliday[] { holiday };
            }
            break;

            case "show":
                if (args.Length > 2)
                {
                    switch (args[2])
                    {
                    case "office":
                        toshowTenant = new Tenant[] { ps.GetTenant() };
                        break;

                    case "dn":
                        toshowExtension = args.Length > 3 ? new Extension[] { ps.GetDNByNumber(args[3]) as Extension } : ps.GetExtensions();
                        break;

                    case "holidays":
                        toshowHolidays = args.Length > 3 ? ps.GetTenant().GetOfficeHolidays().GetDisposer(x => x.Name == args[3]) : ps.GetTenant().GetOfficeHolidays().GetDisposer();
                        break;

                    default:
                        throw new NotImplementedException($"Invalid argument {args[2]} for 'show' action");
                    }
                }
                else
                {
                    toshowTenant    = new Tenant[] { ps.GetTenant() };
                    toshowExtension = ps.GetExtensions();
                    toshowHolidays  = ps.GetTenant().GetOfficeHolidays().GetDisposer();
                }
                break;

            default:
                throw new NotImplementedException($"Invalid action {args[1]}");
            }
            if (toshowTenant != null)
            {
                foreach (var a in toshowTenant)
                {
                    PrintSchedule("OfficeHours", a.Hours);
                    PrintSchedule("BreakTime", a.BreakTime);
                }
            }

            if (toshowExtension != null)
            {
                foreach (var a in toshowExtension)
                {
                    Console.WriteLine($"Extension - {a.Number}");
                    PrintSchedule("OfficeHours", a.Hours);
                    PrintSchedule("BreakTime", a.BreakTime);
                }
            }

            if (toshowHolidays != null)
            {
                foreach (var a in toshowHolidays)
                {
                    Console.WriteLine($"holiday - {a.Name}");
                    Console.WriteLine($"    start:{a.Year:0000}-{a.Month:00}-{a.Day:00}={a.TimeOfStartDate}");
                    if (a.DayEnd != 0 || a.MonthEnd != 0)
                    {
                        Console.WriteLine($"    end:{a.YearEnd:0000}-{a.MonthEnd:00}-{a.DayEnd:00}={a.TimeOfEndDate}");
                    }
                }
            }
        }