Пример #1
0
        public IActionResult Create([FromBody] EnrollFamilyModel model)
        {
            int response;

            if (!ModelState.IsValid)
            {
                var error = ModelState.Values.FirstOrDefault().Errors.FirstOrDefault().ErrorMessage;
                return(BadRequest(new { error_occured = true, error_message = error }));
            }

            try
            {
                Guid userUUID = Guid.Parse(HttpContext.User.Claims.Where(w => w.Type == "UserUUID").Select(x => x.Value).FirstOrDefault());

                int userId    = _imisModules.GetInsureeModule().GetFamilyLogic().GetUserIdByUUID(userUUID);
                int officerId = _imisModules.GetInsureeModule().GetFamilyLogic().GetOfficerIdByUserUUID(userUUID);

                response = _imisModules.GetInsureeModule().GetFamilyLogic().Create(model, userId, officerId);
            }
            catch (ValidationException e)
            {
                return(BadRequest(new { error = new { message = e.Message, value = e.Value } }));
            }

            return(Ok(response));
        }
Пример #2
0
        public int Create(EnrollFamilyModel model, int userId, int officerId)
        {
            int response;

            response = familyRepository.Create(model, userId, officerId);

            return response;
        }
Пример #3
0
        public int Create(EnrollFamilyModel model, int userId, int officerId)
        {
            try
            {
                var enrolFamily = model.GetEnrolmentFromModel();

                enrolFamily.FileInfo.UserId    = userId;
                enrolFamily.FileInfo.OfficerId = officerId;

                var XML  = enrolFamily.XMLSerialize();
                var JSON = JsonConvert.SerializeObject(enrolFamily);

                var EnrolmentDir    = _configuration["AppSettings:Enrollment_Phone"] + Path.DirectorySeparatorChar;
                var JsonDebugFolder = _configuration["AppSettings:JsonDebugFolder"] + Path.DirectorySeparatorChar;
                var UpdatedFolder   = _configuration["AppSettings:UpdatedFolder"] + Path.DirectorySeparatorChar;
                var SubmittedFolder = _configuration["AppSettings:SubmittedFolder"] + Path.DirectorySeparatorChar;

                var hof = enrolFamily.Families.Select(x => x.HOFCHFID).FirstOrDefault();

                var FileName     = string.Format("{0}_{1}_{2}.xml", hof, officerId.ToString(), DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss"));
                var JsonFileName = string.Format("{0}_{1}_{2}.json", hof, officerId.ToString(), DateTime.Now.ToString("dd-MM-yyyy HH-mm-ss"));

                var xmldoc = new XmlDocument();
                xmldoc.InnerXml = XML;

                try
                {
                    if (!Directory.Exists(EnrolmentDir))
                    {
                        Directory.CreateDirectory(EnrolmentDir);
                    }

                    xmldoc.Save(EnrolmentDir + FileName);

                    if (!Directory.Exists(JsonDebugFolder))
                    {
                        Directory.CreateDirectory(JsonDebugFolder);
                    }

                    File.WriteAllText(JsonDebugFolder + JsonFileName, JSON);
                }
                catch (Exception e)
                {
                    throw e;
                }

                int RV = -99;
                int InsureeUpd;
                int InsureeImported;

                using (var imisContext = new ImisDB())
                {
                    var xmlParameter = new SqlParameter("@XML", XML)
                    {
                        DbType = DbType.Xml
                    };
                    var returnParameter          = OutputParameter.CreateOutputParameter("@RV", SqlDbType.Int);
                    var familySentParameter      = OutputParameter.CreateOutputParameter("@FamilySent", SqlDbType.Int);
                    var familyImportedParameter  = OutputParameter.CreateOutputParameter("@FamilyImported", SqlDbType.Int);
                    var familiesUpdParameter     = OutputParameter.CreateOutputParameter("@FamiliesUpd", SqlDbType.Int);
                    var familyRejectedParameter  = OutputParameter.CreateOutputParameter("@FamilyRejected", SqlDbType.Int);
                    var insureeSentParameter     = OutputParameter.CreateOutputParameter("@InsureeSent", SqlDbType.Int);
                    var insureeUpdParameter      = OutputParameter.CreateOutputParameter("@InsureeUpd", SqlDbType.Int);
                    var insureeImportedParameter = OutputParameter.CreateOutputParameter("@InsureeImported", SqlDbType.Int);
                    var policySentParameter      = OutputParameter.CreateOutputParameter("@PolicySent", SqlDbType.Int);
                    var policyImportedParameter  = OutputParameter.CreateOutputParameter("@PolicyImported", SqlDbType.Int);
                    var policyRejectedParameter  = OutputParameter.CreateOutputParameter("@PolicyRejected", SqlDbType.Int);
                    var policyChangedParameter   = OutputParameter.CreateOutputParameter("@PolicyChanged", SqlDbType.Int);
                    var premiumSentParameter     = OutputParameter.CreateOutputParameter("@PremiumSent", SqlDbType.Int);
                    var premiumImportedParameter = OutputParameter.CreateOutputParameter("@PremiumImported", SqlDbType.Int);
                    var premiumRejectedParameter = OutputParameter.CreateOutputParameter("@PremiumRejected", SqlDbType.Int);

                    var sql = "exec @RV = uspConsumeEnrollments @XML, @FamilySent OUT, @FamilyImported OUT, @FamiliesUpd OUT, @FamilyRejected OUT, " +
                              "@InsureeSent OUT, @InsureeUpd OUT, @InsureeImported OUT, " +
                              "@PolicySent OUT, @PolicyImported OUT, @PolicyRejected OUT, @PolicyChanged OUT," +
                              "@PremiumSent OUT, @PremiumImported OUT, @PremiumRejected OUT";

                    DbConnection connection = imisContext.Database.GetDbConnection();

                    using (DbCommand cmd = connection.CreateCommand())
                    {
                        cmd.CommandText = sql;

                        cmd.Parameters.AddRange(new[] { xmlParameter, returnParameter, familySentParameter, familyImportedParameter, familiesUpdParameter,
                                                        familyRejectedParameter, insureeSentParameter, insureeUpdParameter, insureeImportedParameter, policySentParameter,
                                                        policyImportedParameter, policyRejectedParameter, policyChangedParameter, premiumSentParameter, premiumImportedParameter,
                                                        premiumRejectedParameter });

                        if (connection.State.Equals(ConnectionState.Closed))
                        {
                            connection.Open();
                        }

                        using (var reader = cmd.ExecuteReader())
                        {
                            // Displaying errors in the Stored Procedure in Debug mode
                            //do
                            //{
                            //    while (reader.Read())
                            //    {
                            //        Debug.WriteLine("Error/Warning: " + reader.GetValue(0));
                            //    }
                            //} while (reader.NextResult());
                        }
                    }

                    InsureeUpd      = insureeUpdParameter.Value == DBNull.Value ? 0 : (int)insureeUpdParameter.Value;
                    InsureeImported = insureeImportedParameter.Value == DBNull.Value ? 0 : (int)insureeImportedParameter.Value;
                    RV = (int)returnParameter.Value;

                    if (RV == 0 && (InsureeImported > 0 || InsureeUpd > 0))
                    {
                        if (!Directory.Exists(UpdatedFolder))
                        {
                            Directory.CreateDirectory(UpdatedFolder);
                        }

                        foreach (var picture in model.Family.Select(x => x.Insurees.Select(s => s.Picture)).FirstOrDefault().ToList())
                        {
                            if (picture != null)
                            {
                                if (picture.ImageContent != null)
                                {
                                    if (picture.ImageContent.Length != 0)
                                    {
                                        File.WriteAllBytes(UpdatedFolder + Path.DirectorySeparatorChar + picture.ImageName, Convert.FromBase64String(picture.ImageContent));
                                    }
                                }
                            }
                        }
                    }
                }

                return(RV);
            }
            catch (SqlException e)
            {
                throw e;
            }
            catch (Exception e)
            {
                throw e;
            }
        }