예제 #1
0
        static void Main(string[] args)
        {
            if (args == null || args.Length < 1)
            {
                throw new ArgumentNullException($"Please provide the required arguments for input and output file");
            }

            var sourceFileName = args[0];
            var resultFileName = args[1];

            ValidateInputParameters(sourceFileName, resultFileName);

            Console.WriteLine($"Loading information from {sourceFileName}");

            var sourceFile = FileManager.LoadJsonFile(sourceFileName);

            var robotInput = JsonSerializer.Deserialize(sourceFile);

            var cleaningService = new CleaningService();

            Console.WriteLine("Executing cleaning plan");

            var results     = cleaningService.ExecuteCleaningProcess(robotInput);
            var jsonResults = JsonSerializer.Serialize(results);

            Console.WriteLine($"Exporting results to { resultFileName }");

            FileManager.ExportJsonFile(jsonResults, resultFileName);

            Console.WriteLine($"Results exported to { resultFileName }");
            Console.WriteLine("Press any key to close the window");

            Console.ReadLine();
        }
예제 #2
0
        static void Main(string[] args)
        {
            var cleaningService = new CleaningService();
            var instructions    = new Instruction();
            var result          = cleaningService.Clean(instructions);

            Console.WriteLine(@$ "Result from the cleaning: noOfCommands: {result.NoOfCommands}, uniqueSpotsCleaned: {result.UniqeLocationsCleaned}");
        }
        public CleaningController()
        {
            _cleaningService = new CleaningService();
            var mapperConfig = new MapperConfiguration(cfg =>
            {
                cfg.CreateMap <CreateCleaningPostModel, CleaningModel>();
                cfg.CreateMap <CleaningModel, CleaningViewModel>();
            });

            _mapper = new Mapper(mapperConfig);
        }
예제 #4
0
 public CleaningServiceUnitTests()
 {
     _cleaningService = new CleaningService();
 }
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                gsMaxPage   = GetCurrentMaxPage(0, 3);
                clerMaxPage = GetCurrentMaxPage(1, 3);
                clmsMaxPage = GetCurrentMaxPage(2, 3);
            }

            // 加载未保洁客房号信息
            if (!string.IsNullOrEmpty(Request["postTag"]))
            {
                if (Request["postTag"] == "loadClean")
                {
                    gsMaxPage = GetCurrentMaxPage(0, 3);
                    // 此Sql语句将所有未保洁的客房号获取到,并且把处于需要保洁的状态的客房优先排在前面
                    string loadClean = "select * from (" +
                                       " select ROW_NUMBER() over(order by case when GStatus = 4 then 1 else 0 end DESC) AS Row, Gid, GStatus" +
                                       " from GuestRoomInfo" +
                                       " where (GStatus = 0 or GStatus = 2 or GStatus = 4)) T where T.Row between 1 and 3";

                    Response.Write(Get_Serialize_Data_FromSql(connectString, loadClean));
                    Response.End();
                }
            }

            // 加载空闲中保洁员信息
            if (!string.IsNullOrEmpty(Request["postTag"]))
            {
                if (Request["postTag"] == "cler")
                {
                    clerMaxPage = GetCurrentMaxPage(1, 3);
                    string cleaner = "select * from (" +
                                     " select ROW_NUMBER() over(order by CleanerId ASC) AS Row, CleanerId" +
                                     " from CleaningService" +
                                     " where CleanStatus = '00001') T where T.Row between 1 and 3";

                    Response.Write(Get_Serialize_Data_FromSql(connectString, cleaner));
                    Response.End();
                }
            }

            // 加载保洁管理信息
            if (!string.IsNullOrEmpty(Request["postTag"]))
            {
                if (Request["postTag"] == "loadclms")
                {
                    clmsMaxPage = GetCurrentMaxPage(2, 3);
                    string loadclms = "select * from (" +
                                      " select ROW_NUMBER() over(order by Gid ASC) AS Row, Gid, CleanerId" +
                                      " from GuestRoomInfo, CleaningService" +
                                      " where Gid = (CONVERT(int, CleanStatus) / 10)) T where T.Row between 1 and 3";

                    Response.Write(Get_Serialize_Data_FromSql(connectString, loadclms));
                    Response.End();
                }
            }

            // Ajax分页查询未保洁客房信息
            if (!string.IsNullOrEmpty(Request["postTag"]))
            {
                if (Request["postTag"] == "gsByPage")
                {
                    gsNowPage = int.Parse(Request["gsNowPage"]);
                    StringBuilder sqlPage = new StringBuilder();
                    // 此Sql语句将所有未保洁的客房号获取到,并且把处于需要保洁的状态的客房优先排在前面
                    sqlPage.AppendFormat("select * from (" +
                                         " select ROW_NUMBER() over(order by case when GStatus = 4 then 1 else 0 end DESC) AS Row, Gid, GStatus" +
                                         " from GuestRoomInfo" +
                                         " where (GStatus = 0 or GStatus = 2 or GStatus = 4)) T where T.Row between {0} and {1}",
                                         (gsNowPage - 1) * 3 + 1, gsNowPage * 3);

                    Response.Write(Get_Serialize_Data_FromSql(connectString, sqlPage.ToString()));
                    Response.End();
                }
            }

            // Ajax分页查询空闲中保洁员信息
            if (!string.IsNullOrEmpty(Request["postTag"]))
            {
                if (Request["postTag"] == "clerByPage")
                {
                    clerNowPage = int.Parse(Request["clerNowPage"]);

                    StringBuilder sqlPage = new StringBuilder();

                    sqlPage.AppendFormat("select * from (" +
                                         " select ROW_NUMBER() over(order by CleanerId ASC) AS Row, CleanerId" +
                                         " from CleaningService" +
                                         " where CleanStatus = '00001') T where T.Row between {0} and {1}",
                                         (clerNowPage - 1) * 3 + 1, clerNowPage * 3);

                    Response.Write(Get_Serialize_Data_FromSql(connectString, sqlPage.ToString()));
                    Response.End();
                }
            }

            // Ajax分页查询正在保洁中的客房和负责人信息
            if (!string.IsNullOrEmpty(Request["postTag"]))
            {
                if (Request["postTag"] == "clmsByPage")
                {
                    clmsNowPage = int.Parse(Request["clmsNowPage"]);
                    StringBuilder sqlPage = new StringBuilder();

                    sqlPage.AppendFormat("select * from (" +
                                         " select ROW_NUMBER() over(order by Gid ASC) AS Row, Gid, CleanerId" +
                                         " from GuestRoomInfo, CleaningService" +
                                         " where Gid = (CONVERT(int, CleanStatus) / 10)) T where T.Row between {0} and {1}",
                                         (clmsNowPage - 1) * 3 + 1, clmsNowPage * 3);

                    Response.Write(Get_Serialize_Data_FromSql(connectString, sqlPage.ToString()));
                    Response.End();
                }
            }

            // 给客房安排保洁服务
            if (!string.IsNullOrEmpty(Request["postTag"]))
            {
                if (Request["postTag"] == "arrangeClean")
                {
                    int gid    = int.Parse(Request["gid"]);
                    int clerid = int.Parse(Request["clerid"]);

                    CleaningServiceBLL csbll = new CleaningServiceBLL();
                    CleaningService    cs    = csbll.GetModel(clerid);
                    cs.CleanStatus = (gid * 10000 + 1).ToString();
                    csbll.Update(cs);

                    GuestRoomInfoBLL gsbll = new GuestRoomInfoBLL();
                    GuestRoomInfo    gs    = gsbll.GetModelList("Gid = " + gid)[0];
                    gs.GStatus = 5;
                    gsbll.Update(gs);


                    Response.Write(1);
                    Response.End();
                }
            }

            // 保洁完成
            if (!string.IsNullOrEmpty(Request["postTag"]))
            {
                if (Request["postTag"] == "setComplete")
                {
                    int gid    = int.Parse(Request["gid"]);
                    int clerid = int.Parse(Request["clerid"]);

                    CleaningServiceBLL csbll = new CleaningServiceBLL();
                    CleaningService    cs    = csbll.GetModel(clerid);
                    cs.CleanStatus = "00001";
                    csbll.Update(cs);

                    GuestRoomInfoBLL gsbll = new GuestRoomInfoBLL();
                    GuestRoomInfo    gs    = gsbll.GetModelList("Gid = " + gid)[0];
                    gs.GStatus = 0;
                    gsbll.Update(gs);


                    Response.Write(1);
                    Response.End();
                }
            }

            // updateClms
            if (!string.IsNullOrEmpty(Request["postTag"]))
            {
                if (Request["postTag"] == "updateClms")
                {
                    clmsNowPage = int.Parse(Request["clmsNowPage"]);
                    clmsMaxPage = GetCurrentMaxPage(2, 3);

                    if (clmsNowPage - 1 == clmsMaxPage)
                    {
                        clmsNowPage = clmsMaxPage;
                        Response.Write(clmsNowPage);
                        Response.End();
                    }

                    StringBuilder sqlPage = new StringBuilder();
                    sqlPage.AppendFormat("select * from (" +
                                         " select ROW_NUMBER() over(order by Gid ASC) AS Row, Gid, CleanerId" +
                                         " from GuestRoomInfo, CleaningService" +
                                         " where Gid = (CONVERT(int, CleanStatus) / 10)) T where T.Row between {0} and {1}",
                                         (clmsNowPage - 1) * 3 + 1, clmsNowPage * 3);

                    Response.Write(Get_Serialize_Data_FromSql(connectString, sqlPage.ToString()));
                    Response.End();
                }
            }

            // 获取最大页数
            if (!string.IsNullOrEmpty(Request["postTag"]))
            {
                if (Request["postTag"] == "getMaxPage")
                {
                    gsMaxPage   = GetCurrentMaxPage(0, 3);
                    clerMaxPage = GetCurrentMaxPage(1, 3);
                    clmsMaxPage = GetCurrentMaxPage(2, 3);

                    Dictionary <string, object> pageList = new Dictionary <string, object>();
                    pageList.Add("gsMaxPage", gsMaxPage);
                    pageList.Add("clerMaxPage", clerMaxPage);
                    pageList.Add("clmsMaxPage", clmsMaxPage);


                    JavaScriptSerializer subjson = new JavaScriptSerializer();
                    object serializer_sub_Obj    = subjson.Serialize(pageList);

                    Response.Write(serializer_sub_Obj);
                    Response.End();
                }
            }
        }
 public CleaningController(CleaningService cleaningService)
 {
     _cleaningService = cleaningService;
 }