/// <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()); } }
/// <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()); } }
/// <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); } }
/// <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()); } }
/// <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()); } }