//getting a single form
        //public async Task<HoursForm> GetSingleForm(int formId)
        //{
        //    return await context.HoursForms.FindAsync(formId);
        //}

        //edit the form
        public async Task <HoursFormModel> EditForm(HoursFormModel editform)
        {
            HoursForm entity = context.HoursForms.Single(p => p.FormId == editform.FormId);

            entity.FormId           = editform.FormId;
            entity.AccountId        = editform.AccountId;
            entity.DateSend         = editform.DateSend;
            entity.DateDue          = editform.DateDue;
            entity.TotalHours       = editform.TotalHours;
            entity.Year             = editform.Year;
            entity.ProjectMonth     = editform.ProjectMonth;
            entity.IsAcceptedClient = editform.IsAcceptedClient;
            entity.IsLocked         = editform.IsLocked;

            await context.SaveChangesAsync();

            return(editform);
        }
 public async Task <ActionResult <HoursFormModel> > EditForm(HoursFormModel editform)
 {
     return(await hoursform.EditForm(editform));
 }
 public async Task <HoursFormModel> createHourForm(HoursFormModel hoursFormModel)
 {
     return(await hoursform.CreateNewForm(hoursFormModel));
 }
        public async Task <IActionResult> EmployeeDashboard()
        {
            var client   = _httpClientFactory.CreateClient("Api");
            var response = await client.GetAsync($"Account/{2}");

            if (!response.IsSuccessStatusCode)
            {
                throw new Exception("Cannont retrieve account");
            }
            var jsonString = await response.Content.ReadAsStringAsync();

            var result = JsonConvert.DeserializeObject <AccountModel>(jsonString);

            var response1 = await client.GetAsync($"HoursForm/formsperuser/{2}");

            if (!response1.IsSuccessStatusCode)
            {
                throw new Exception("Cannont retrieve form");
            }
            var jsonString1 = await response1.Content.ReadAsStringAsync();

            var result1 = JsonConvert.DeserializeObject <List <HoursFormModel> >(jsonString1);

            AccountModel accountInfo = new AccountModel()
            {
                FirstName = result.FirstName,
                LastName  = result.LastName,
                Address   = result.Address,
                ZIP       = result.ZIP,
                AccountId = result.AccountId,
                City      = result.City
            };
            List <HoursFormModel> formsOverview = new List <HoursFormModel>();

            foreach (var form in result1)
            {
                formsOverview.Add(new HoursFormModel
                {
                    AccountId    = form.AccountId,
                    FormId       = form.FormId,
                    DateDue      = form.DateDue,
                    Year         = form.Year,
                    ProjectMonth = form.ProjectMonth
                });
            }
            EmployeeDashboardModel EDM = new EmployeeDashboardModel();

            EDM.Account = accountInfo;
            EDM.Forms   = formsOverview;
            List <HoursFormModel> hoursforms = new List <HoursFormModel>();

            //HttpClient client = _api.Connect();
            //HttpResponseMessage res = await client.GetAsync("HoursForm/hoursform");

            //if(res.IsSuccessStatusCode)
            //{
            //    var result = res.Content.ReadAsStringAsync().Result;
            //    hoursforms = JsonConvert.DeserializeObject<List<HoursFormModel>>(result);
            //}

            for (int i = 0; i < 5; i++)
            {
                HoursFormModel hoursform = new HoursFormModel()
                {
                    ProjectMonth = "November",
                    DateDue      = new DateTime(2019, 02, 12)
                };

                hoursforms.Add(hoursform);
            }
            return(View(EDM));
        }
        public async Task <HoursFormModel> CreateNewForm(HoursFormModel hoursFormModel)
        {
            // create form
            HoursForm hoursForm = new HoursForm()
            {
                AccountId        = hoursFormModel.AccountId,
                DateSend         = hoursFormModel.DateSend,
                DateDue          = hoursFormModel.DateDue,
                TotalHours       = hoursFormModel.TotalHours,
                ProjectMonth     = hoursFormModel.ProjectMonth,
                Year             = hoursFormModel.Year,
                IsAcceptedClient = hoursFormModel.IsAcceptedClient,
                IsLocked         = hoursFormModel.IsLocked
            };

            context.HoursForms.Add(hoursForm);
            await context.SaveChangesAsync();

            var DaysinMonth = 0;

            switch (hoursForm.ProjectMonth)
            {
            case "januari":
                DaysinMonth = 31;
                break;

            case "februari":
                if (DateTime.IsLeapYear(Convert.ToInt32(hoursForm.Year)) == true)
                {
                    DaysinMonth = 29;
                }
                else
                {
                    DaysinMonth = 28;
                }
                break;

            case "maart":
                DaysinMonth = 31;
                break;

            case "april":
                DaysinMonth = 30;
                break;

            case "mei":
                DaysinMonth = 31;
                break;

            case "juni":
                DaysinMonth = 30;
                break;

            case "juli":
                DaysinMonth = 31;
                break;

            case "augustus":
                DaysinMonth = 31;
                break;

            case "september":
                DaysinMonth = 30;
                break;

            case "oktober":
                DaysinMonth = 31;
                break;

            case "november":
                DaysinMonth = 30;
                break;

            case "december":
                DaysinMonth = 31;
                break;
            }

            while (DaysinMonth > 0)
            {
                context.HoursPerDays.Add(new HoursPerDay
                {
                    FormId        = hoursForm.FormId,
                    Day           = DaysinMonth,
                    Month         = hoursForm.ProjectMonth,
                    Hours         = 0,
                    OverTimeHours = 0,
                    Training      = 0,
                    IsLeave       = 0,
                    Other         = 0,
                    Reasoning     = "",
                    ClientId      = null,
                    IsSick        = 0
                });

                DaysinMonth--;
                await context.SaveChangesAsync();
            }

            return(hoursFormModel);
        }