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