/// <summary> /// Just a quick method to re-sum the hours /// </summary> private void CalculateHours (Assignment assignment) { if (laborHours == null) assignment.TotalHours = TimeSpan.Zero; else assignment.TotalHours = TimeSpan.FromMilliseconds (laborHours.Sum (l => l.Hours.TotalMilliseconds)); }
public Task<List<Photo>> GetPhotosForAssignmentAsync (Assignment assignment, CancellationToken cancellationToken = default(CancellationToken)) { return Database.GetConnection (cancellationToken) .Table<Photo> () .Where (p => p.AssignmentId == assignment.Id) .ToListAsync (); }
public Task<List<Labor>> GetLaborForAssignmentAsync (Assignment assignment, CancellationToken cancellationToken = default(CancellationToken)) { return Database.GetConnection (cancellationToken) .Table<Labor> () .Where (l => l.AssignmentId == assignment.Id) .ToListAsync (); }
/// <summary> /// Deletes a labor entry /// </summary> public Task DeleteLaborAsync (Assignment assignment, Labor labor) { return service.DeleteLaborAsync (labor) .ContinueWith (t => { laborHours.Remove (labor); CalculateHours (assignment); }); }
/// <summary> /// Deletes an expense report /// </summary> public Task DeleteExpenseAsync (Assignment assignment, Expense expense) { return service.DeleteExpenseAsync (expense) .ContinueWith (t => { expenses.Remove (expense); CalculateExpenses (assignment); }); }
/// <summary> /// Sets the assignment for this cell /// </summary> public void SetAssignment(ConfirmationController controller, Assignment assignment, UITableView tableView) { this.controller = controller; this.assignment = assignment; this.tableView = tableView; completeButton.Enabled = assignment.CanComplete; }
public void SaveAssignmentItem () { var assignment = new Assignment(); var task = viewModel.SaveAssignmentItemAsync (assignment, new AssignmentItem ()); task.Wait (); Assert.That (assignment.TotalItems, Is.EqualTo (1)); }
public void DeleteAssignmentItem () { var assignment = new Assignment { TotalItems = 1 }; var task = viewModel.DeleteAssignmentItemAsync (assignment, new AssignmentItem ()); task.Wait (); Assert.That (assignment.TotalItems, Is.EqualTo (0)); }
public void SavePhoto () { var assignment = new Assignment (); var task = viewModel.SavePhotoAsync (assignment, new Photo ()); task.Wait (); Assert.That (viewModel.Photos.Count, Is.EqualTo (1)); }
public Task<List<Expense>> GetExpensesForAssignmentAsync (Assignment assignment, CancellationToken cancellationToken = default(CancellationToken)) { return Database.GetConnection (cancellationToken) .QueryAsync<Expense> (@" select Expense.*, case when ExpensePhoto.Id is null then 0 else 1 end as HasPhoto from Expense left outer join ExpensePhoto on ExpensePhoto.ExpenseId = Expense.Id where Expense.AssignmentId = ?", assignment.Id); }
/// <summary> /// Saves an assignment item /// </summary> public Task SaveAssignmentItemAsync (Assignment assignment, AssignmentItem item) { bool newItem = item.Id == 0; return service .SaveAssignmentItemAsync (item) .ContinueWith (t => { if (newItem) assignment.TotalItems++; }); }
/// <summary> /// Saves a labor entry /// </summary> public Task SaveLaborAsync (Assignment assignment, Labor labor) { bool newItem = labor.Id == 0; return service.SaveLaborAsync (labor) .ContinueWith (t => { if (newItem) laborHours.Add (labor); CalculateHours (assignment); }); }
public void DeletePhoto () { var assignment = new Assignment { TotalItems = 1 }; var photo = new Photo (); viewModel.Photos = new List<Photo> { photo }; var task = viewModel.DeletePhotoAsync (assignment, photo); task.Wait (); Assert.That (viewModel.Photos.Count, Is.EqualTo (0)); }
/// <summary> /// Saves an expense report /// </summary> public Task SaveExpenseAsync (Assignment assignment, Expense expense) { bool newItem = expense.Id == 0; return service.SaveExpenseAsync (expense) .ContinueWith (t => { if (newItem) expenses.Add (expense); CalculateExpenses (assignment); }); }
public Task<List<AssignmentItem>> GetItemsForAssignmentAsync (Assignment assignment, CancellationToken cancellationToken = default(CancellationToken)) { return Database.GetConnection (cancellationToken) .QueryAsync<AssignmentItem> (@" select AssignmentItem.*, Item.Number, Item.Name from AssignmentItem inner join Item on Item.Id = AssignmentItem.ItemId where AssignmentItem.AssignmentId = ? order by Item.Name", assignment.Id); }
public Task<List<AssignmentItem>> GetItemsForAssignmentAsync (Assignment assignment, CancellationToken cancellationToken) { return Task.Factory.StartNew (() => new List<AssignmentItem> () { new AssignmentItem { Id = 1, AssignmentId = 1, ItemId = 1, }, }); }
public void DeleteLabor () { var assignment = new Assignment(); var loadTask = viewModel.LoadLaborHoursAsync (assignment); loadTask.Wait (); var task = viewModel.DeleteLaborAsync (assignment, viewModel.LaborHours.First()); task.Wait (); Assert.That (assignment.TotalHours, Is.EqualTo (TimeSpan.FromHours(0))); }
public void SaveLabor () { var assignment = new Assignment (); var loadTask = viewModel.LoadLaborHoursAsync (assignment); loadTask.Wait (); var task = viewModel.SaveLaborAsync (assignment, new Labor { Hours = TimeSpan.FromHours (1) }); task.Wait (); Assert.That (assignment.TotalHours, Is.EqualTo (TimeSpan.FromHours(2))); }
public SummaryActivity () { assignmentViewModel = ServiceContainer.Resolve<AssignmentViewModel> (); itemViewModel = ServiceContainer.Resolve<ItemViewModel> (); laborViewModel = ServiceContainer.Resolve<LaborViewModel> (); photoViewModel = ServiceContainer.Resolve<PhotoViewModel> (); expenseViewModel = ServiceContainer.Resolve<ExpenseViewModel> (); documentViewModel = ServiceContainer.Resolve<DocumentViewModel> (); historyViewModel = ServiceContainer.Resolve<HistoryViewModel> (); menuViewModel = ServiceContainer.Resolve<MenuViewModel> (); assignment = assignmentViewModel.SelectedAssignment; }
public void DeleteExpense () { var assignment = new Assignment(); var loadTask = viewModel.LoadExpensesAsync (assignment); loadTask.Wait (); var task = viewModel.DeleteExpenseAsync (assignment, viewModel.Expenses.First()); task.Wait (); Assert.That (assignment.TotalExpenses, Is.EqualTo (0m)); }
public void SaveExpense () { var assignment = new Assignment (); var loadTask = viewModel.LoadExpensesAsync (assignment); loadTask.Wait (); var task = viewModel.SaveExpenseAsync (assignment, new Expense { Cost = 2 }); task.Wait (); Assert.That (assignment.TotalExpenses, Is.EqualTo (2m)); }
/// <summary> /// Sets the assignment for this cell /// </summary> public void SetAssignment(ConfirmationController controller, Assignment assignment, UITableView tableView) { this.controller = controller; this.assignment = assignment; this.tableView = tableView; completeButton.Enabled = assignment.CanComplete; completeButton.SetBackgroundImage (Theme.Complete, UIControlState.Normal); completeButton.SetBackgroundImage (Theme.CompleteInactive, UIControlState.Disabled); completeButton.SetTitleColor (UIColor.White, UIControlState.Normal); completeButton.SetTitle ("Complete", UIControlState.Normal); completeButton.SetTitle ("Completed", UIControlState.Disabled); }
public Task<List<Labor>> GetLaborForAssignmentAsync (Assignment assignment, CancellationToken cancellationToken) { return Task.Factory.StartNew (() => new List<Labor> () { new Labor { Id = 1, AssignmentId = 1, Description = "New Labor", Hours = TimeSpan.FromHours(1), Type = LaborType.Hourly, }, }); }
/// <summary> /// Saves a photo /// </summary> public Task SavePhotoAsync (Assignment assignment, Photo photo) { bool newPhoto = photo.Id == 0; //Update the date photo.Date = DateTime.Now; return service .SavePhotoAsync (photo) .ContinueOnCurrentThread (t => { if (newPhoto) { if (photos == null) photos = new List<Photo> (); photos.Add (photo); OnPropertyChanged ("Photos"); } }); }
/// <summary> /// Set the signature for this cell /// </summary> public void SetSignature (ConfirmationController controller, Assignment assignment, Data.Signature signature) { this.controller = controller; //Dispose the previous image if there was one if (image != null) { image.Dispose (); image = null; } if (signature == null) { this.signature.Hidden = true; this.signature.SetBackgroundImage (null, UIControlState.Normal); addSignature.Hidden = false; addSignature.SetTitleColor (UIColor.White, UIControlState.Normal); if (assignment.Status != AssignmentStatus.Complete && !assignment.IsHistory) { addSignature.Enabled = true; addSignature.SetBackgroundImage (Theme.ButtonDark, UIControlState.Normal); addSignature.SetTitle ("Add Signature", UIControlState.Normal); } else { addSignature.Enabled = false; addSignature.SetBackgroundImage (null, UIControlState.Normal); addSignature.SetTitle ("No Signature", UIControlState.Normal); } } else { image = signature.Image.ToUIImage (); this.signature.Hidden = false; this.signature.SetBackgroundImage (image, UIControlState.Normal); this.signature.Layer.CornerRadius = 7; this.signature.ClipsToBounds = true; this.signature.Enabled = !assignment.IsReadonly; addSignature.Hidden = true; } }
/// <summary> /// Sets the current active assignment /// </summary> /// <param name="visible"></param> void SetAssignment (bool visible) { if (!visible) { assignmentMapViewLayout.Visibility = ViewStates.Gone; return; } assignmentMapViewLayout.Visibility = ViewStates.Visible; assignment = assignmentViewModel.ActiveAssignment; buttonLayout.Visibility = ViewStates.Gone; timerLayout.Visibility = ViewStates.Visible; var adapter = new SpinnerAdapter<AssignmentStatus> (assignmentViewModel.AvailableStatuses, this, Resource.Layout.SimpleSpinnerItem); adapter.TextColor = Resources.GetColor (Resource.Color.greyspinnertext); adapter.Background = Resources.GetColor (Resource.Color.assignmentblue); activeSpinner.Adapter = adapter; activeSpinner.SetSelection (assignmentViewModel.AvailableStatuses.ToList ().IndexOf (assignment.Status)); activeSpinner.SetBackgroundResource (Resource.Drawable.triangleblue); spinnerImage.SetImageResource (Resource.Drawable.EnrouteImage); number.Text = assignment.Priority.ToString (); job.Text = string.Format ("#{0} {1}\n{2}", assignment.JobNumber, assignment.StartDate.ToShortDateString (), assignment.CompanyName); name.Text = assignment.ContactName; phone.Text = assignment.ContactPhone; address.Text = string.Format ("{0}\n{1}, {2} {3}", assignment.Address, assignment.City, assignment.State, assignment.Zip); timerText.Text = assignmentViewModel.Hours.ToString (@"hh\:mm\:ss"); }
MarkerOptions GetMarkerOptionsForAssignment (Assignment assignment) { var markerOptions = new MarkerOptions (); markerOptions.SetPosition (new LatLng (assignment.Latitude, assignment.Longitude)); markerOptions.SetTitle (assignment.CompanyName); markerOptions.SetSnippet (string.Format ("{0} {1}, {2} {3}", assignment.Address, assignment.City, assignment.State, assignment.Zip)); return markerOptions; }
/// <summary> /// Sets up the assignment for the cell /// </summary> public void SetAssignment (AssignmentsController controller, Assignment assignment, NSIndexPath indexPath) { this.controller = controller; this.assignment = assignment; this.indexPath = indexPath; //Update font size on priority if (assignment.Priority >= 10) { priority.Font = Theme.FontOfSize (14); } else { priority.Font = Theme.FontOfSize (18); } //Now make any changes dependant on the assignment passed in ((UIImageView)BackgroundView).Image = Theme.AssignmentGrey; priority.Text = assignment.Priority.ToString (); numberAndDate.Text = string.Format ("#{0} {1}", assignment.JobNumber, assignment.StartDate.Date.ToShortDateString ()); title.Text = assignment.CompanyName; startAndEnd.Text = assignment.FormatStartEndDates (); contact.TopLabel.Text = assignment.ContactName; contact.BottomLabel.Text = assignment.ContactPhone; address.TopLabel.Text = assignment.Address; address.BottomLabel.Text = string.Format ("{0}, {1} {2}", assignment.City, assignment.State, assignment.Zip); if (assignment.Status == AssignmentStatus.New) { if (statusView != null) statusView.Hidden = true; status.Hidden = true; accept.Hidden = decline.Hidden = false; //Alpha on disabled rows if (Theme.IsiOS7) { priority.Alpha = priorityBackground.Alpha = numberAndDate.Alpha = title.Alpha = contact.Alpha = address.Alpha = 0.5f; } } else { if (statusView != null) statusView.Hidden = false; status.Hidden = false; accept.Hidden = decline.Hidden = true; //Alpha on disabled rows if (Theme.IsiOS7) { priority.Alpha = priorityBackground.Alpha = numberAndDate.Alpha = title.Alpha = contact.Alpha = address.Alpha = 1; } status.Assignment = assignment; } }
/// <summary> /// Loads the signature for an assignment /// </summary> public Task LoadSignatureAsync (Assignment assignment) { return service.GetSignatureAsync (assignment).ContinueOnCurrentThread (t => Signature = t.Result); }
/// <summary> /// Saves an assignment, and applies any needed changes to the active one /// </summary> public Task SaveAssignmentAsync (Assignment assignment) { //Save the assignment Task task = service.SaveAssignmentAsync (assignment); //If the active assignment should be put on hold if (activeAssignment != null && assignment != activeAssignment && assignment.Status == AssignmentStatus.Active) { //Set the active assignment to hold and save it activeAssignment.Status = AssignmentStatus.Hold; if (Recording) { task = task.ContinueWith (PauseAsync ()); } task = task.ContinueWith (service.SaveAssignmentAsync (activeAssignment)); } //If we are saving the active assignment, we need to pause it if (assignment == activeAssignment && assignment.Status != AssignmentStatus.Active && Recording) { task = task.ContinueWith (PauseAsync ()); Hours = TimeSpan.Zero; } //Set the active assignment if (assignment.Status == AssignmentStatus.Active) { ActiveAssignment = assignment; } return task; }
public Task <Signature> GetSignatureAsync(Assignment assignment, CancellationToken cancellationToken = default(CancellationToken)) { return(Database.GetConnection(cancellationToken).Table <Signature> ().Where(s => s.AssignmentId == assignment.Id).FirstOrDefaultAsync()); }
public Task <int> SaveAssignmentAsync(Assignment assignment, CancellationToken cancellationToken = default(CancellationToken)) { return(Database.GetConnection(cancellationToken) .UpdateAsync(assignment)); }