Пример #1
0
    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();
    }
Пример #2
0
    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));
            }
        }
Пример #5
0
    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);
    }
Пример #6
0
    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);
    }