/// <summary>
        /// Fills the task detail.
        /// </summary>
        /// <param name="headerDate">The header date.</param>
        /// <returns></returns>
        private async Task FillTaskDetail(string headerDate)
        {
            var progress = ProgressDialog.Show(this, GetString(Resource.String.Insight), GetString(Resource.String.PleaseWait), true);
            lblTaskMessage.Visibility = Android.Views.ViewStates.Invisible;
            try
            {
                if (!IfNetworkAvailable())
                {
                    progress.Dismiss();
                    return;
                }

                if (ApplicationData.User != null)
                {
                    timesheetWorkDetails = await this.timesheetRepository.RetrieveWorkDetails(headerDate, ApplicationData.User.UserId, ApplicationData.User.UserId, ApplicationData.User.Token);
                }

                if (timesheetWorkDetails != null)
                {
                    FillControls();
                }

                progress.Dismiss();
            }
            catch (Exception)
            {
                progress.Dismiss();
            }
        }
        /// <summary>
        /// Fills the task detail.
        /// </summary>
        /// <param name="headerDate">The header date.</param>
        /// <returns>The Task</returns>
        private async Task FillTaskDetail(string headerDate)
        {
            try
            {
                if (NetworkInterface.GetIsNetworkAvailable())
                {
                    if (ApplicationData.User != null)
                    {
                        timesheetWorkDetails = await this.timesheetRepository.RetrieveWorkDetails(headerDate, ApplicationData.User.UserId, ApplicationData.User.UserId, ApplicationData.User.Token);
                    }

                    if (timesheetWorkDetails != null)
                    {
                        FillControls();
                    }
                }
            }
            catch (Exception)
            {
            }
        }
        /// <summary>
        /// Gets the task hours.
        /// </summary>
        /// <param name="timesheetWorkDetails">The timesheet work details.</param>
        /// <returns>Total Work Hours.</returns>
        public decimal GetTaskHours(TimesheetWorkDetailCollection timesheetWorkDetails)
        {
            if (timesheetWorkDetails != null && timesheetWorkDetails.Count > 0)
            {
                return timesheetWorkDetails.Select(count => count.Hours).Sum();
            }

            return 0;
        }
        public HttpResponseMessage RetrieveTimesheetWorkDetails(string date, string developerId, string userId)
        {
            if (!string.IsNullOrEmpty(date) && !string.IsNullOrEmpty(developerId) && !string.IsNullOrEmpty(userId))
            {
                var timesheetWorkDetails = new TimesheetWorkDetailCollection();
                var workDetails = this.timesheetService.RetrieveList(Convert.ToDateTime(date, CultureInfo.CurrentCulture), Convert.ToInt32(developerId, CultureInfo.CurrentCulture), Convert.ToInt32(userId, CultureInfo.CurrentCulture));
                if (workDetails != null)
                {
                    foreach (var item in workDetails)
                    {
                        timesheetWorkDetails.Add(new TimesheetWorkDetail
                        {
                            ApplicationID = item.ApplicationID,
                            CategoryID = item.CategoryID,
                            Date = item.Date,
                            Description = item.Description,
                            Feature = item.Feature,
                            Hours = item.Hours,
                            ProjectID = item.ProjectID,
                            ProjectName = item.ProjectName,
                            ProjectShortName = item.ProjectShortName,
                            WorkCategory = item.WorkCategory,
                            WorkDetailID = item.WorkDetailID
                        });
                    }

                    return Request.CreateResponse(HttpStatusCode.OK, timesheetWorkDetails);
                }
            }

            return Request.CreateResponse(HttpStatusCode.BadRequest);
        }