Пример #1
0
        //Active Requests To show Fill Daily Timesheet
        //DailyTimesheets
        public IActionResult DailyTimesheets()
        {
            var userid = this.User.FindFirstValue(ClaimTypes.NameIdentifier);
            var total_accepted_invitation = _context.ProjectAssignment.Where(x => x.Status == "Accepted").ToList();
            List <DailyTimesheetViewModel> daily_timesheets = new List <DailyTimesheetViewModel>();

            foreach (var a in total_accepted_invitation)
            {
                var dailyTimesheet = new DailyTimesheetViewModel();
                if (a.EmployeeId == userid)
                {
                    dailyTimesheet.ProjectName        = _context.Projects.SingleOrDefault(x => x.ProjectId == a.ProjectId).Name;
                    dailyTimesheet.ProjectDescription = _context.Projects.SingleOrDefault(x => x.ProjectId == a.ProjectId).Description;
                    dailyTimesheet.ProjectId          = _context.Projects.SingleOrDefault(x => x.ProjectId == a.ProjectId).ProjectId;
                    daily_timesheets.Add(dailyTimesheet);
                }
            }
            return(View(daily_timesheets));
        }
Пример #2
0
        private async void SendToOffice_Clicked(object sender, EventArgs e)
        {
            SaveDailyTimesheetToDatabase(false);

            var isConfirmed = false;

            var helpers = new Helpers();

            if (helpers.IsDeviceOnline())
            {
                isConfirmed = await DisplayAlert("Confirm", "Are you sure you want to submit this daily timesheet?", "Yes", "Cancel");
            }
            else
            {
                ResetActivityIndicator();

                await DisplayAlert("No Internet Connection", "You need to be connected to the internet in order to submit this daily timesheet.", "Acknowledge");
            }

            if (isConfirmed)
            {
                var dailyTimesheet = App.DailyTimesheetsDatabase.GetDailyTimesheetById(Convert.ToInt32(Id.Text));

                var client = new HttpClient
                {
                    BaseAddress = new Uri(_url),
                };

                client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                var ma = new DailyTimesheetViewModel()
                {
                    DailyMileage   = dailyTimesheet.DailyMileage,
                    Date           = dailyTimesheet.Date,
                    IsDeleted      = false,
                    LineItems      = dailyTimesheet.LineItems,
                    LunchEndTime   = dailyTimesheet.LunchEndTime,
                    LunchStartTime = dailyTimesheet.LunchStartTime,
                    MileageEnd     = dailyTimesheet.MileageEnd,
                    MileageStart   = dailyTimesheet.MileageStart,
                    SentToOffice   = false,
                    StaffId        = dailyTimesheet.StaffId,
                    StaffSignature = dailyTimesheet.StaffSignature,
                    CallOut        = dailyTimesheet.CallOut,
                    TotalHours     = dailyTimesheet.TotalHours,
                    WeekNumber     = dailyTimesheet.WeekNumber
                };

                var jsonObject = JsonConvert.SerializeObject(ma).ToString();

                var response = await client.PostAsync("PostDailyTimesheet", new StringContent(jsonObject, Encoding.UTF8, "application/json"));

                if (response.IsSuccessStatusCode)
                {
                    var contents = await response.Content.ReadAsStringAsync();

                    var jsonResponse = JsonConvert.DeserializeObject <CreateDailyTimesheetResponseViewModel>(contents);

                    if (jsonResponse.Id == -1)
                    {
                        ResetActivityIndicator();

                        await DisplayAlert("Error", jsonResponse.ErrorMessage, "Acknowledge");
                    }
                    else
                    {
                        App.DailyTimesheetsDatabase.DailyTimesheetsentToOffice(dailyTimesheet.Id, jsonResponse.Id);

                        await DisplayAlert("Success", "Your daily timesheet has been successfully sent to the office.", "Back to Daily Timesheets");

                        await Navigation.PopAsync(true);
                    }
                }
                else
                {
                    ResetActivityIndicator();

                    await DisplayAlert("Error", "An error has occurred.", "Acknowledge");
                }
            }
            else
            {
                ResetActivityIndicator();
            }
        }