public long part_one(string input) { const int sum = 2020; var numbers = UniqueNumbers.Parse(input); foreach (var number0 in numbers.Range(max: sum / 2)) { var number1 = sum - number0; if (numbers.Contains(number1)) { return(number0 * number1); } } throw new NoAnswer(); }
public long part_two(string input) { const int sum = 2020; var numbers = UniqueNumbers.Parse(input); foreach (var number0 in numbers.Range(max: sum / 3)) { foreach (var number1 in numbers.Range(min: number0 + 1, max: (sum - number0) / 2)) { var number2 = sum - number0 - number1; if (numbers.Contains(number2)) { return((long)number0 * (long)number1 * (long)number2); } } } throw new NoAnswer(); }
public async Task <IHttpActionResult> Register(RegisterBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = new ApplicationUser() { UserName = model.EmployeeId, Email = model.Email, EmailConfirmed = true }; string password = UniqueNumbers.GeneratePassword(); try { IdentityResult result = await UserManager.CreateAsync(user, password); if (result.Succeeded) { var res = await UserManager.AddToRoleAsync(user.Id, model.RoleName); EmployeesActivities employees = new EmployeesActivities(new UnitOfWork()); employees.CreatedBy = User.Identity.GetUserName(); employees.Save(new Employee { EmployeeId = model.EmployeeId, EmployeeName = model.EmployeeName, DesignationId = model.DesignationId, SectionId = model.SectionId, Location = model.Location, ReportTo = model.ReportTo, JoiningDate = model.JoiningDate, Email = model.Email, groups = model.groups }); } var reportTo = await UserManager.FindByNameAsync(model.ReportTo); if (reportTo?.Email != null) { var url = "/#/othersObjectives?id=" + user.UserName; await UserManager.SendEmailAsync(reportTo.Id, "Confirm Job Description", "Mr/s " + model.EmployeeName + " submit a job Description.Please Approve the job description. To view the Job description please click <a href=\"" + new Uri(url) + "\">here</a>"); } return(Ok("The Employee Password is " + password + " and Role is " + UserManager.GetRoles(user.Id).SingleOrDefault())); } catch (Exception e) { return(BadRequest(e.Message)); } }
public async Task <IHttpActionResult> Register(RegisterBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var user = new ApplicationUser() { UserName = model.EmployeeId, Email = model.Email, EmailConfirmed = true }; string password = UniqueNumbers.GeneratePassword(); try { IdentityResult result = await UserManager.CreateAsync(user, password); if (result.Succeeded) { var res = await UserManager.AddToRoleAsync(user.Id, model.RoleName); EmployeesActivities employees = new EmployeesActivities(new UnitOfWork()); employees.CreatedBy = User.Identity.GetUserName(); employees.Save(new Employee { EmployeeId = model.EmployeeId, EmployeeName = model.EmployeeName, DesignationId = model.DesignationId, SectionId = model.SectionId, Location = model.Location, ReportTo = model.ReportTo, JoiningDate = model.JoiningDate, Email = model.Email, groups = model.groups }); } var employee = await UserManager.FindByNameAsync(model.EmployeeId); if (employee?.Email != null) { var url = clientside + "/#/login"; await UserManager.SendEmailAsync(employee.Id, "Regisatration Confirmation", "Mr/s " + model.EmployeeName + "<br/> Your Registration is complete. Your password is: " + password + ". please click <a href=\"" + new Uri(url) + "\">here</a> to login"); } return(Ok("The Employee Password is " + password + " and Role is " + UserManager.GetRoles(user.Id).SingleOrDefault())); } catch (Exception e) { return(BadRequest(e.Message)); } }
public long part_two(string input) { var unique = UniqueNumbers.Parse(input); unique.Add(unique.Maximum + 3); var size = 0; var prev = 0; long combinations = 1; var combos = new[] { 1, 1, 1, 2, 4, 7 }; foreach (var num in unique) { size++; if (num - prev == 3) { combinations *= combos[size]; size = 0; } prev = num; } return(combinations); }
public long part_one(string input) { var unique = UniqueNumbers.Parse(input); var prev = 0; var d1 = 0; var d3 = 1; foreach (var num in unique) { var delta = num - prev; switch (delta) { case 1: d1++; break; case 2: break; case 3: d3++; break; default: throw new NoAnswer(); } prev = num; } return(d1 * d3); }