Пример #1
0
        /// <summary>
        /// Метод создает направление.
        /// </summary>
        /// <param name="direction"></param>
        /// <returns></returns>
        public async Task CreateDirection(Direction direction)
        {
            try {
                using (var db = new SqlConnection(_connectionString)) {
                    // Получает id карты пациента по его имени.
                    var objCard = await db.QueryAsync <string>($"SELECT card_number FROM dbo.PatientCards " +
                                                               $"WHERE full_name = '{direction.PatientName}'");

                    // Получает id места направления по его названию.
                    var objDirect = await db.QueryAsync <int>($"SELECT id FROM dbo.SeatDirections " +
                                                              $"WHERE name_direction = '{direction.SeatDirection}'");

                    // Находит Id сотрудника по его имени.
                    int employeeId = await GetUserIds(direction.EmployeeName);

                    // Генерит номер направления.
                    int RandomGenerate()
                    {
                        return(RandomDataService.GenerateRandomNumber());
                    }
                    int generateNumberDirect = RandomGenerate();

                    // Сохраняет новое направление.
                    await db.QueryAsync($"INSERT INTO dbo.Directions (card_number, number_direction, seat_direction_id, direction_type, direction_status, employee_id) " +
                                        $"VALUES ({objCard.FirstOrDefault()}, {generateNumberDirect}, {objDirect.FirstOrDefault()}, '{direction.Type}', '{direction.Status}', {employeeId})");
                }
            }
            catch (Exception ex) {
                throw new Exception(ex.Message.ToString());
            }
        }
Пример #2
0
        /// <summary>
        /// Метод записывает на пациента прием.
        /// </summary>
        /// <param name="patient"></param>
        /// <returns></returns>
        public async Task Write(PatientCard patient)
        {
            int sNum   = Convert.ToInt32(RandomDataService.GenerateRandomNumber());  // Получает рандомный номер записи на прием.
            int userId = await GetUserIds(patient.FullName);

            try {
                using (var db = new SqlConnection(_connectionString)) {
                    var oReception = await db.QueryAsync($"INSERT INTO dbo.Receptions (date, number_reception, employee_id, card_number) " +
                                                         $"VALUES ('{patient.TimeProcRecommend}', {sNum}, {userId}, '{patient.CardNumber}')");
                }
            }
            catch (Exception ex) {
                throw new Exception(ex.Message.ToString());
            }
        }
Пример #3
0
        /// <summary>
        /// Метод создает новую карту пациента.
        /// </summary>
        /// <param name="patientCard"></param>
        /// <returns></returns>
        public async Task Create(PatientCard patientCard)
        {
            string typeParam = "card";
            int    generateNumber;

            // Генерит рандомный номер заявки.
            int RandomGenerate()
            {
                return(RandomDataService.GenerateRandomNumber());
            }

            generateNumber = RandomGenerate();

            // Проверяет существует ли уже такая карта.
            var resultCheck = await CheckingCard(typeParam, patientCard.CardNumber);

            // Если такая карта уже существует, то повторно пойдет генерить номер карты.
            if (Convert.ToBoolean(resultCheck))
            {
                generateNumber = RandomGenerate();
            }

            patientCard.CardNumber = generateNumber;

            using (var db = new SqlConnection(_conStr)) {
                var parameters = new DynamicParameters();
                parameters.Add("@cardNumber", patientCard.CardNumber, DbType.Int32);
                parameters.Add("@fullName", patientCard.FullName, DbType.String);
                parameters.Add("@dateOfBirth", patientCard.DateOfBirth, DbType.DateTime);
                parameters.Add("@address", patientCard.Address, DbType.String);
                parameters.Add("@number", patientCard.Number, DbType.String);
                parameters.Add("@policy", patientCard.Policy, DbType.String);
                parameters.Add("@snails", patientCard.Snails, DbType.String);
                parameters.Add("@timeProcAndRec", patientCard.TimeProcRecommend, DbType.DateTime);
                parameters.Add("@prescriptionDrugs", patientCard.PrescriptionDrugs, DbType.String);
                parameters.Add("@diagnosis", patientCard.Diagnosis, DbType.String);
                parameters.Add("@recipesRecommend", patientCard.RecipesRecommend, DbType.String);
                parameters.Add("@medicalHistory", patientCard.MedicalHistory, DbType.String);
                parameters.Add("@doctor", patientCard.Doctor, DbType.String);
                parameters.Add("@blood_group", patientCard.BloodGroup, DbType.String);
                parameters.Add("@category", patientCard.Category, DbType.String);
                parameters.Add("@seat_work", patientCard.SeatWork, DbType.String);
                parameters.Add("@position", patientCard.Position, DbType.String);
                parameters.Add("@tab_number", patientCard.TabNum, DbType.String);
                parameters.Add("@insurance_company", patientCard.InsuranceCompany, DbType.String);
                parameters.Add("@date_to", patientCard.DateTo, DbType.Date);
                parameters.Add("@comment", patientCard.Comment, DbType.String);
                parameters.Add("@email", patientCard.Email, DbType.String);
                parameters.Add("@indicator", patientCard.Indicator, DbType.String);
                parameters.Add("@isVich", patientCard.isVich, DbType.String);
                parameters.Add("@isHb", patientCard.isHb, DbType.String);
                parameters.Add("@isRw", patientCard.isRw, DbType.String);
                parameters.Add("@city", patientCard.City, DbType.String);
                parameters.Add("@region", patientCard.Region, DbType.String);
                parameters.Add("@district", patientCard.District, DbType.String);
                parameters.Add("@form_payment", patientCard.FormPay, DbType.String);
                parameters.Add("@plan_payment", patientCard.PlanPay, DbType.String);
                parameters.Add("@registry", patientCard.Registry, DbType.Date);
                parameters.Add("@who_change", patientCard.WhoChange, DbType.String);
                parameters.Add("@operator", patientCard.Operator, DbType.String);
                parameters.Add("@index_number", patientCard.IndexNumber, DbType.String);

                // Вызывает процедуру создания новой карты пациента.
                await db.QueryAsync <PatientCard>("sp_CreateCard",
                                                  commandType : CommandType.StoredProcedure,
                                                  param : parameters);
            }
        }
Пример #4
0
        /// <summary>
        /// Метод формирует новое коммерческое предложение поставщику.
        /// </summary>
        /// <param name="offer"></param>
        /// <returns></returns>
        public async override Task FormOfferNoTemplate(object offer)
        {
            string typeParam      = "request";
            int    generateNumber = 0;

            try {
                var     objParse = JsonSerializer.Serialize(offer);
                JObject jParse   = JObject.Parse(objParse);

                var aMaterials      = (JArray)jParse["aMaterials"];
                var aMaterialValues = aMaterials.Values().ToList();

                var aGroups      = (JArray)jParse["aGroups"];
                var aGroupValues = aGroups.Values().ToList();

                var aMeasures      = (JArray)jParse["aAddMeasures"];
                var aMeasureValues = aMeasures.Values().ToList();

                var aCount       = (JArray)jParse["aCountMaterials"];
                var aCountValues = aCount.Values().ToList();

                var aDates      = (JArray)jParse["aDates"];
                var aDateValues = aDates.Values().ToList();

                var aSum       = (JArray)jParse["aSums"];
                var aSumValues = aSum.Values().ToList();

                // Генерит рандомный номер предложения.
                int RandomGenerate()
                {
                    return(RandomDataService.GenerateRandomNumber());
                }

                generateNumber = RandomGenerate();

                int i = 0;
                foreach (var material in aMaterialValues)
                {
                    CommerceOffer offerObject = new CommerceOffer()
                    {
                        OfferCode = generateNumber,
                        Status    = CommerceOfferStatus.OFFER_STATUS_PREPARATION
                    };

                    // Итеративно создает объекты предложений.
                    offerObject.Material = material.ToString();
                    offerObject.Group    = aGroupValues[i].ToString();
                    offerObject.Count    = Convert.ToInt32(aCount[i]);
                    offerObject.Measure  = aMeasures[i].ToString();
                    offerObject.Date     = aDateValues[i].ToString();

                    // Форматирует цену.
                    long result = (long)aSumValues[i];
                    offerObject.MaxSum = result.ToString("N");

                    await _db.CommerceOffers.AddRangeAsync(offerObject);

                    i++;
                }
                await _db.SaveChangesAsync();
            }
            catch (Exception ex) {
                throw new Exception(ex.Message.ToString());
            }
        }
Пример #5
0
        /// <summary>
        /// Метод создает новую заявку.
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async override Task CreateRequest(object request)
        {
            try {
                string  typeParam      = "request";
                int     generateNumber = 0;
                var     objParse       = JsonSerializer.Serialize(request);
                JObject jsonObject     = JObject.Parse(objParse);

                // Выбирает материалы.
                var aMaterials      = (JArray)jsonObject["Material"];
                var aMaterialValues = aMaterials.Values().ToList();

                // Выбирает группы.
                var aGroups         = (JArray)jsonObject["MaterialGroup"];
                var aMaterialGroups = aGroups.Values().ToList();

                // Выбирает кол-во.
                var count  = (JArray)jsonObject["Count"];
                var aCount = count.Values().ToList();

                // Выбирает ед.изм.
                var sMeasures = (JArray)jsonObject["Measure"];
                var aMeasures = sMeasures.Values().ToList();
                //var sMeasure = jsonObject["Measure"].ToString();

                // Генерит рандомный номер заявки.
                int RandomGenerate()
                {
                    return(RandomDataService.GenerateRandomNumber());
                }

                generateNumber = RandomGenerate();

                // Проверяет, существует ли уже такая заявка.
                var resultCheck = await CheckingRequest(typeParam, generateNumber);

                // Если такая заявка уже существует, то повторно пойдет генерить номер заявки.
                if (Convert.ToBoolean(resultCheck))
                {
                    generateNumber = RandomGenerate();
                }

                // Перебор материалов.
                int i = 0;
                foreach (var material in aMaterialValues)
                {
                    Request reqObject = new Request()
                    {
                        Number = generateNumber,
                        Status = RequestStatus.REQ_STATUS_NEW
                    };

                    // Итеративно создает объекты заявок.
                    reqObject.Material      = material.ToString();
                    reqObject.MaterialGroup = aMaterialGroups[i].ToString();
                    reqObject.Count         = Convert.ToInt32(aCount[i]);
                    reqObject.Measure       = aMeasures[i].ToString();

                    // Итеративно сохраняет объекты.
                    await _db.Requests.AddRangeAsync(reqObject);

                    i++;
                }
                // В итоге все добавленные объекты сохранятся разом. В БД каждая такая итерация сохранится новой строкой.
                await _db.SaveChangesAsync();
            }
            catch (Exception ex) {
                throw new Exception(ex.Message.ToString());
            }
        }