public IActionResult Index() { var contact = _contactDatastore.ByEmail(_context.Email()); var company = _companyDatastore.ById(contact.CompanyId); var account = new AccountViewModel { Contact = contact, Company = company }; return(View(account)); }
public IActionResult SummaryResults(TextSummary model) { var txt1 = Task <string> .Factory.StartNew(() => Summariser.TextRank(model.InputText, model.TextRank_MaxWords)); var txt2 = Task <string> .Factory.StartNew(() => Summariser.OpenText(model.InputText, model.OpenText_MaxSentences)); var txt3 = Task <string> .Factory.StartNew(() => Summariser.CodePlexOpenText(model.InputText, model.CodePlexOpenText_DisplayPercent)); var tasks = new List <Task>(new[] { txt1, txt2, txt3 }); Task.WaitAll(tasks.ToArray()); var contact = _contactDatastore.ByEmail(_context.Email()); var hash = _hash.CreateMD5(model.InputText); var priorUsage = _usageDatastore .ByInputText(hash) .Where(x => x.ContactId == contact.Id) .OrderBy(x => x.DateTimeUTC) .FirstOrDefault(); if (priorUsage == null || priorUsage?.DateTimeUTC.AddDays(1) < DateTime.Now.ToUniversalTime()) { // only charge if this is a new summary for today _usageDatastore.Create(new Usage { ContactId = contact.Id, InputText = hash }); } var result = new SummaryResults { Input = model.InputText, TextRank = txt1.Result, OpenTextSummarizer = txt2.Result, CodePlexOpenTextSummarizer = txt3.Result }; return(View(result)); }
public Task Authenticate(ValidatePrincipalContext context) { var contact = _contactDatastore.ByEmail(context.UserName); if (contact?.Password != _hash.CreateMD5(context.Password)) { context.AuthenticationFailMessage = "Authentication failed."; return(Task.CompletedTask); } var claims = new List <Claim> { new Claim(ClaimTypes.Email, $"{contact.Email}", context.Options.ClaimsIssuer), new Claim(ClaimTypes.Role, contact.Role, context.Options.ClaimsIssuer) }; var principal = new ClaimsPrincipal(new ClaimsIdentity(claims, BasicAuthenticationDefaults.AuthenticationScheme)); context.Principal = principal; return(Task.CompletedTask); }
public Contact ByEmail(string email) { return(_filter.Filter(new[] { _datastore.ByEmail(email) }.AsQueryable()).SingleOrDefault()); }