Example #1
0
        private void CheckRepresentative(Models.FinanceData financeData, CustomContext context)
        {
            Models.PersonalData personalData   = financeData.Enrollment.PersonalData;
            Representative      representative = financeData.Representative;

            if (!string.IsNullOrEmpty(personalData.BirthDate) && GetAge(personalData.BirthDate) > 18)
            {
                bool isDiff = false;

                if (representative is RepresentativePerson)
                {
                    isDiff = representative.Name != personalData.RealName ? true : isDiff;
                    isDiff = representative.StreetAddress != personalData.StreetAddress ? true : isDiff;
                    isDiff = representative.Neighborhood != personalData.Neighborhood ? true : isDiff;
                    isDiff = representative.PhoneNumber != personalData.PhoneNumber ? true : isDiff;
                    isDiff = representative.Landline != personalData.Landline ? true : isDiff;
                    isDiff = representative.Email != personalData.Email ? true : isDiff;
                    isDiff = representative.CityId != personalData.CityId ? true : isDiff;
                    isDiff = representative.StateId != personalData.StateId ? true : isDiff;
                    isDiff = ((RepresentativePerson)representative).Cpf != personalData.CPF ? true : isDiff;
                }

                if (isDiff)
                {
                    context.AddFailure("Dados do responsável não são os mesmos dos dados pessoais.");
                }
            }
        }
Example #2
0
        public ActionResult Save()
        {
            Models.PersonalData  personalData  = JsonConvert.DeserializeObject <Models.PersonalData>(Request.Form["personalData"]);
            Models.FinancialData financialData = GetFinancialData(Request.Form["financialData"]);
            Models.RevenueData   revenueData   = JsonConvert.DeserializeObject <Models.RevenueData>(Request.Form["revenueData"]);

            var identity   = Request.Files["identity"];
            var powerbill  = Request.Files["powerbill"];
            var IRPF       = Request.Files["IRPF"];
            var additional = Request.Files["additional"];

            var storePath = ConfigurationManager.AppSettings.Get("store");
            var folder    = new Random().Next(9999, 99999).ToString();

            if (!Directory.Exists(Path.Combine(storePath, folder)))
            {
                Directory.CreateDirectory(Path.Combine(storePath, folder));
            }


            var pdf = BuildPDF(personalData, financialData, revenueData, Path.Combine(storePath, folder));

            SaveFiles(identity, powerbill, IRPF, additional, Path.Combine(storePath, folder));
            SendEmail(pdf, personalData.Email, folder);

            return(RedirectToAction("Index"));
        }
Example #3
0
        private string BuildPDF(Models.PersonalData personalData, Models.FinancialData financialData, Models.RevenueData revenueData, string store)
        {
            string fileNameExisting = ConfigurationManager.AppSettings.Get("template");
            string fileNameNew      = Path.Combine(store, personalData.RG + "_" + new Random().Next(9999, 99999) + ".pdf");

            using (var existingFileStream = new FileStream(fileNameExisting, FileMode.Open))
                using (var newFileStream = new FileStream(fileNameNew, FileMode.Create))
                {
                    var pdfReader = new PdfReader(existingFileStream);
                    var stamper   = new PdfStamper(pdfReader, newFileStream);

                    var form = stamper.AcroFields;
                    form.GenerateAppearances = true;
                    var fieldKeys = form.Fields.Keys;

                    foreach (string fieldKey in fieldKeys)
                    {
                        foreach (var property in typeof(Models.PersonalData).GetProperties())
                        {
                            if (property.Name == fieldKey)
                            {
                                form.SetField(fieldKey, property.GetValue(personalData).ToString());
                            }
                        }

                        foreach (var property in typeof(Models.Accounts).GetProperties())
                        {
                            if (financialData.AccountsList == null)
                            {
                                break;
                            }

                            foreach (var account in financialData.AccountsList)
                            {
                                if (property.Name == fieldKey)
                                {
                                    form.SetField(fieldKey, property.GetValue(account).ToString());
                                }
                            }
                        }

                        foreach (var property in typeof(Models.RevenueData).GetProperties())
                        {
                            if (property.Name == fieldKey)
                            {
                                form.SetField(fieldKey, property.GetValue(revenueData).ToString());
                            }
                        }
                    }

                    stamper.FormFlattening = true;

                    stamper.Close();
                    pdfReader.Close();

                    return(fileNameNew);
                }
        }
Example #4
0
        /// <summary>
        /// Async Process
        /// </summary>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public override System.Threading.Tasks.Task <System.Net.Http.HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken)
        {
            using (Gale.Db.DataService svc = new Gale.Db.DataService("PA_MOT_OBT_Perfl"))
            {
                svc.Parameters.Add("USUA_Token", this.Model);

                Gale.Db.EntityRepository rep = this.ExecuteQuery(svc);

                Models.Account                account  = rep.GetModel <Models.Account>().FirstOrDefault();
                List <Models.Role>            roles    = rep.GetModel <Models.Role>(1);
                Models.SocialProfile          counter  = rep.GetModel <Models.SocialProfile>(2).FirstOrDefault();
                Models.PersonalData           personal = rep.GetModel <Models.PersonalData>(3).FirstOrDefault();
                Models.Sport                  sport    = rep.GetModel <Models.Sport>(3).FirstOrDefault();
                List <Models.EmergencyPhones> phones   = rep.GetModel <Models.EmergencyPhones>(4);
                List <Models.Medal>           medals   = rep.GetModel <Models.Medal>(5);

                //----------------------------------------------------------------------------------------------------
                //Guard Exception's
                Gale.Exception.RestException.Guard(() => account == null, "ACCOUNT_DONT_EXISTS", API.Errors.ResourceManager);
                //----------------------------------------------------------------------------------------------------

                account.photo = (account.photo == System.Guid.Empty ? null : account.photo);

                if (personal != null)
                {
                    personal.emergencyPhones = (from t in phones select t.phone).ToList();
                }
                //----------------------------------------------------------------------------------------------------
                //Create Response
                var response = new HttpResponseMessage(System.Net.HttpStatusCode.OK)
                {
                    Content = new ObjectContent <Object>(
                        new
                    {
                        account  = account,
                        roles    = roles,
                        sport    = sport,
                        personal = personal,
                        social   = counter,
                        medals   = medals
                    },
                        System.Web.Http.GlobalConfiguration.Configuration.Formatters.KqlFormatter()
                        )
                };

                //Return Task
                return(Task.FromResult(response));
                //----------------------------------------------------------------------------------------------------
            }
        }