コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 public Contact ByEmail(string email)
 {
     return(_filter.Filter(new[] { _datastore.ByEmail(email) }.AsQueryable()).SingleOrDefault());
 }