Пример #1
0
        public static ScriptHost.Result BillingTask(string task, QueryParameters queryParams)
        {
            ScriptHost.Result result = new ScriptHost.Result();

            DateTime sd;
            DateTime ed;
            DateTime period;

            void getDates(bool startRequired, bool endRequired, bool periodRequired)
            {
                if (startRequired && !queryParams.ContainsParameter("StartDate"))
                {
                    throw new Exception("Missing parameter: StartDate");
                }

                if (endRequired && !queryParams.ContainsParameter("EndDate"))
                {
                    throw new Exception("Missing parameter: EndDate");
                }

                if (periodRequired && !queryParams.ContainsParameter("Period"))
                {
                    throw new Exception("Missing parameter: Period");
                }

                sd     = queryParams.GetValue("StartDate", DateTime.Now);
                ed     = queryParams.GetValue("EndDate", DateTime.Now);
                period = queryParams.GetValue("Period", DateTime.Now);
            }

            var context  = "Data.Models.CommandLine.CommandLineUtility.BillingTask";
            var clientId = queryParams.GetValue("ClientID", 0);

            using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["cnSselData"].ConnectionString))
            {
                conn.Open();
                switch (task)
                {
                case "ToolDataClean":
                    getDates(true, true, false);
                    var writeToolDataCleanResult = new WriteToolDataCleanProcess(new WriteToolDataCleanConfig {
                        Connection = conn, StartDate = sd, EndDate = ed, ClientID = clientId, Context = context
                    }).Start();
                    result.Success = true;
                    result.Message = null;
                    result.Data    = writeToolDataCleanResult.LogText;
                    break;

                case "ToolData":
                    getDates(true, true, false);
                    var writeToolDataResult = new WriteToolDataProcess(new WriteToolDataConfig {
                        Connection = conn, Period = sd, ClientID = clientId, ResourceID = queryParams.GetValue("ResourceID", 0), Context = context
                    }).Start();
                    result.Success = true;
                    result.Message = null;
                    result.Data    = writeToolDataResult.LogText;
                    break;

                case "RoomDataClean":
                    getDates(true, true, false);
                    var writeRoomDataCleanResult = new WriteRoomDataCleanProcess(new WriteRoomDataCleanConfig {
                        Connection = conn, StartDate = sd, EndDate = ed, ClientID = clientId, Context = context
                    }).Start();
                    result.Success = true;
                    result.Message = null;
                    result.Data    = writeRoomDataCleanResult.LogText;
                    break;

                case "RoomData":
                    getDates(true, true, false);
                    var writeRoomDataResult = new WriteRoomDataProcess(new WriteRoomDataConfig {
                        Connection = conn, Period = sd, ClientID = clientId, RoomID = queryParams.GetValue("RoomID", 0), Context = context
                    }).Start();
                    result.Success = true;
                    result.Message = null;
                    result.Data    = writeRoomDataResult.LogText;
                    break;

                case "StoreDataClean":
                    getDates(true, true, false);
                    var writeStoreDataCleanResult = new WriteStoreDataCleanProcess(new WriteStoreDataCleanConfig {
                        Connection = conn, StartDate = sd, EndDate = ed, ClientID = clientId, Context = context
                    }).Start();
                    result.Success = true;
                    result.Message = null;
                    result.Data    = writeStoreDataCleanResult.LogText;
                    break;

                case "StoreData":
                    getDates(true, true, false);
                    var writeStoreDataResult = new WriteStoreDataProcess(new WriteStoreDataConfig {
                        Connection = conn, Period = sd, ClientID = clientId, ItemID = queryParams.GetValue("ItemID", 0), Context = context
                    }).Start();
                    result.Success = true;
                    result.Message = null;
                    result.Data    = writeStoreDataResult.LogText;
                    break;

                case "ToolBillingStep1":
                    getDates(false, false, true);
                    var step1 = new BillingDataProcessStep1(new Step1Config {
                        Connection = conn, Period = period, ClientID = clientId, IsTemp = queryParams.GetValue("IsTemp", false), Now = DateTime.Now, Context = context
                    });
                    var step1Result = step1.PopulateToolBilling();
                    result.Success = true;
                    result.Message = null;
                    result.Data    = step1Result.LogText;
                    break;

                default:
                    result.Success = false;
                    result.Message = "Unknown task: " + task;
                    break;
                }
                conn.Close();
            }

            return(result);
        }