コード例 #1
0
ファイル: DataProvider.cs プロジェクト: nibbler13/InfoKiosk
        public static bool WriteItemServiceToDb(string department, out string message)
        {
            if (!Services.ContainsKey(department))
            {
                message = "Не удается найти отделение: " + department;
                return(false);
            }

            int i = 0;

            try {
                using (FirebirdClient firebirdClient = new FirebirdClient(
                           Config.Instance.MisDbAddress,
                           Config.Instance.MisDbPort,
                           Config.Instance.MisDbName,
                           Config.Instance.MisDbUserName,
                           Config.Instance.MisDbUserPassword)) {
                    foreach (ItemService item in Services[department])
                    {
                        if (!item.HasChanged)
                        {
                            continue;
                        }

                        object priorityValue = null;
                        if (int.TryParse(item.Priority, out int priority))
                        {
                            priorityValue = priority;
                        }

                        bool result = firebirdClient.ExecuteUpdateQuery(
                            Config.Instance.SqlInsertServicePriority,
                            new Dictionary <string, object> {
                            { "@schid", item.Schid },
                            { "@priority", priorityValue }
                        },
                            true);

                        if (result)
                        {
                            item.ConfirmSave();
                            i++;
                        }
                    }
                }
            } catch (Exception e) {
                message = e.Message;
                return(false);
            }

            message = "Записано в БД строк: " + i;
            return(true);
        }
コード例 #2
0
        public static async void WriteSurveyResultToDb()
        {
            await Task.Run(() => {
                ItemSurveyResult surveyResult = Instance;
                SendMailAboutNegativeMark(surveyResult);

                if ((DateTime.Now - previousRateTime).TotalSeconds >= 120)
                {
                    previousRatesDcodes.Clear();
                }

                string mark = surveyResult.Mark;
                if (previousRatesDcodes.Contains(surveyResult.DCode))
                {
                    mark = "Duplicate";
                }
                else
                {
                    previousRatesDcodes.Add(surveyResult.DCode);
                }

                Logging.ToLog("ItemSurveyResult - Запись результата опроса в базу данных: " + surveyResult.ToString());

                using (Services.FirebirdClient fBClient = new Services.FirebirdClient(
                           Services.Config.Instance.MisDbAddress,
                           Services.Config.Instance.MisDbPort,
                           Services.Config.Instance.MisDbName,
                           Services.Config.Instance.MisDbUserName,
                           Services.Config.Instance.MisDbUserPassword)) {
                    Dictionary <string, object> surveyResults = new Dictionary <string, object>()
                    {
                        { "@dcode", surveyResult.DCode },
                        { "@docrate", mark },
                        { "@comment", surveyResult.Comment },
                        { "@phonenumber", surveyResult.PhoneNumber },
                        { "@photopath", surveyResult.PhotoLink },
                        { "@depnum", surveyResult.DocDeptCode }
                    };

                    string query = Services.Config.Instance.SqlInsertLoyaltySurveyResult;
                    Logging.ToLog("ItemSurveyResult - Результат выполнения: " + fBClient.ExecuteUpdateQuery(query, surveyResults));

                    previousRateTime = surveyResult.SurveyDateTime.Value;
                }
            }).ConfigureAwait(false);
        }