private void BuildInterface() { View.BackgroundColor = new UIImage("Images/fondoPrincipal.jpg").GetScaledImageBackground(View); var header = new Header(View.Frame.Width) { LocationTitle = _assignmentVm.SelectedAssignment.CompanyName, LeftButtonImage = "Images/btn-atras.png", ButtonTouch = async(sender, args) => { if (_assignmentVm.SelectedActivity.ActivityType == Enumerations.ActivityType.None) { _assignmentVm.SelectedAssignment.Activities.Remove(_assignmentVm.SelectedActivity); } else { if (_assignmentVm.SelectedActivity.IsRecording) { await _assignmentVm.StopAsync(willContinue : true); _assignmentVm.SelectedActivity.IsRecording = true; } _assignmentVm.SelectedActivity.Traces.Add(new Trace { ActivityId = _assignmentVm.SelectedActivity.Id, ActivityState = _assignmentVm.SelectedActivity.State, TraceDate = DateTime.Now, Longitude = (decimal)_longitude, Latitude = (decimal)_latitude }); await _assignmentVm.SaveActivityAsync(); } _navigationService.GoBack(); } }; var principalData = new AssignmentDataView(View.Frame) { Frame = new CGRect(0, header.Frame.Y + header.Frame.Height, View.Frame.Width, 65) }; _activityType = new ActivityFill { Title = "Tipo de Actividad", BackgroundColor = UIColor.Clear, Frame = new CGRect(10, principalData.Frame.Y + principalData.Frame.Height, View.Frame.Width, 40), Hit = TouchActivityTypeButton }; _description = new ActivityFill { Title = "Decripción", BackgroundColor = UIColor.Clear, Frame = new CGRect(10, _activityType.Frame.Y + _activityType.Frame.Height, View.Frame.Width - 20, 40), Hit = TouchButtonDescription }; _startDate = new ActivityDate { Title = "Fecha de Inicio", Frame = new CGRect(10, _description.Frame.Y + _description.Frame.Height, View.Frame.Width, 40) }; _endDate = new ActivityDate { Title = "Fecha de Inicio", Frame = new CGRect(10, _startDate.Frame.Y + _startDate.Frame.Height, View.Frame.Width, 40) }; _description.NewTitle = string.IsNullOrEmpty(_assignmentVm.SelectedActivity.Description) ? "+" : _assignmentVm.SelectedActivity.Description; _activityType.NewTitle = GetTypeName(_assignmentVm.SelectedActivity.ActivityType); _startDate.Date = (_assignmentVm.SelectedActivity.StartDate != DateTime.MinValue) ? _assignmentVm.SelectedActivity.StartDate.ToString("dd/MM/yyyy hh:mm") : string.Empty; _endDate.Date = (_assignmentVm.SelectedActivity.EndDate != DateTime.MinValue) ? _assignmentVm.SelectedAssignment.EndDate.ToString("dd/MM/yyyy hh:mm") : string.Empty; if (_assignmentVm.SelectedActivity.IsRecording) { var elapsed = DateTime.Now - _assignmentVm.SelectedActivity.StartDate; _assignmentVm.SelectedActivity.Duration = _assignmentVm.SelectedActivity.Duration.Add(elapsed); _assignmentVm.RecordAsync(); } _timerView = new UIView { Frame = new CGRect(View.Frame.Width / 2 - 70, _endDate.Frame.Y + _endDate.Frame.Height + 10, 160, 160) }; _timespan = new UILabel { Frame = new CGRect(0, 0, 160, 60), Font = UIFont.FromName("Helvetica-Bold", 35), TextColor = UIColor.White, Text = _assignmentVm.SelectedActivity.Duration.ToString(@"hh\:mm\:ss") }; var timerButton = UIButton.FromType(UIButtonType.Custom); timerButton.Frame = new CGRect(View.Frame.Width / 2 - 120, _timespan.Frame.Height + 5, 70, 70); timerButton.SetImage( _assignmentVm.SelectedActivity.IsRecording ? new UIImage("Images/btn-stop.png") : new UIImage("Images/btn-play.png"), UIControlState.Normal); timerButton.Enabled = _assignmentVm.SelectedAssignment.Status != Enumerations.AssignmentStatus.Complete; timerButton.TouchUpInside += (sender, args) => { if (_assignmentVm.ActiveActivity != null && _assignmentVm.SelectedActivity.Id != _assignmentVm.ActiveActivity.Id) { new UIAlertView(title: "Ferreyros", message: Constants.Messages.ActivityNotFinished, del: null, cancelButtonTitle: "OK", otherButtons: null).Show(); return; } _activityType.UserInteractionEnabled = false; _description.UserInteractionEnabled = false; timerButton.Enabled = false; _assignmentVm.ActiveActivity = !_assignmentVm.SelectedActivity.IsRecording ? _assignmentVm.SelectedActivity : null; var task = _assignmentVm.SelectedActivity.IsRecording ? _assignmentVm.StopAsync() : _assignmentVm.RecordAsync(); timerButton.SetImage( _assignmentVm.SelectedActivity.IsRecording ? new UIImage("Images/btn-stop.png") : new UIImage("Images/btn-play.png"), UIControlState.Normal); task.ContinueWith(_ => { BeginInvokeOnMainThread(() => { timerButton.Enabled = _assignmentVm.ActiveActivity != null; }); }); }; //_timerView.Hidden = _assignmentVm.SelectedActivity.ActivityType == Enumerations.ActivityType.None; _timerView.AddSubviews(timerButton, _timespan); var notifyClient = UIButton.FromType(UIButtonType.Custom); notifyClient.SetImage(new UIImage("Images/send-mail.png"), UIControlState.Normal); notifyClient.SetTitle("Notificar el fin del servicio al Cliente", UIControlState.Normal); notifyClient.BackgroundColor = UIColor.Clear; notifyClient.TitleLabel.Font = UIFont.FromName("Helvetica-Light", 13f); notifyClient.TitleLabel.TextAlignment = UITextAlignment.Left; notifyClient.TitleLabel.LineBreakMode = UILineBreakMode.WordWrap; notifyClient.TitleEdgeInsets = new UIEdgeInsets(0, -60, 0, -150); notifyClient.Frame = new CGRect(40, _timerView.Frame.Y + _timerView.Frame.Height + 10, 80, 40); notifyClient.ImageView.ContentMode = UIViewContentMode.ScaleAspectFit; //notifyClient.Enabled = _assignmentVm.SelectedActivity.State != Enumerations.ActivityState.Completed; notifyClient.TouchUpInside += (sender, args) => { if (_assignmentVm.SelectedActivity.IsRecording) { new UIAlertView(title: "Ferreyros", message: Constants.Messages.ActivityNotFinished, del: null, cancelButtonTitle: "OK", otherButtons: null).Show(); return; } var okCancelAlertController = UIAlertController.Create("Cerrar Servicio", "¿Con esta actividad se ha completado el servicio?, se enviará un correo al cliente informando.", UIAlertControllerStyle.Alert); okCancelAlertController.AddAction(UIAlertAction.Create("Si", UIAlertActionStyle.Default, async alert => { _assignmentVm.SelectedActivity.State = Enumerations.ActivityState.Completed; await _assignmentVm.SaveActivityAsync(); await _assignmentVm.SendActivityEndsAssignmentMailAsync(); notifyClient.Enabled = false; })); okCancelAlertController.AddAction(UIAlertAction.Create("No", UIAlertActionStyle.Cancel, alert => { })); PresentViewController(okCancelAlertController, true, null); }; var copyRight = new UILabel { Text = "2016 Ferreyros | Derechos Reservados", TextAlignment = UITextAlignment.Center, TextColor = UIColor.White, Font = UIFont.FromName("Helvetica-Light", 10f), Frame = new CGRect(0, View.Frame.Height - 30, View.Frame.Width, 20) }; View.AddSubviews(header, principalData, _activityType, _description, _startDate, _endDate, _timerView, notifyClient, copyRight); }
private async void BuildInterface() { View.BackgroundColor = new UIImage("Images/fondoPrincipal.jpg").GetScaledImageBackground(View); await _assignmentVm.LoadActivitiesByAssignmentAsync(); var header = new Header(View.Frame.Width) { LocationTitle = _assignmentVm.SelectedAssignment.CompanyName, LeftButtonImage = "Images/btn-atras.png", ButtonTouch = async(sender, args) => { await _assignmentVm.SaveAssignmentAsync(); _navigationService.GoBack(); } }; var principalData = new AssignmentDataView(View.Frame) { Frame = new CGRect(0, header.Frame.Y + header.Frame.Height, View.Frame.Width, 65), }; var seeAssignmentInfo = new TextImageButton { Frame = new CGRect(50, principalData.Frame.Y + principalData.Frame.Height + 20, 70, 70), Image = "Images/datos-servicio.png", Content = "DATOS DE SERVICIO" }; seeAssignmentInfo.TouchUpInside += (sender, args) => { var actionSheetAlert = UIAlertController.Create("Datos de Servicio", "Seleccione que datos desea ver", UIAlertControllerStyle.ActionSheet); actionSheetAlert.AddAction(UIAlertAction.Create("DATOS DEL SERVICIO", UIAlertActionStyle.Default, (action) => { _assignmentVm.SelectedServiceDataType = Enumerations.ServiceDataType.ServiceData; _navigationService.NavigateTo(Constants.PageKeys.ServiceData); })); actionSheetAlert.AddAction(UIAlertAction.Create("DATOS DE LA MAQUINA", UIAlertActionStyle.Default, (action) => { _assignmentVm.SelectedServiceDataType = Enumerations.ServiceDataType.MachineData; _navigationService.NavigateTo(Constants.PageKeys.ServiceData); })); actionSheetAlert.AddAction(UIAlertAction.Create("CONTACTO TÉCNICO", UIAlertActionStyle.Default, (action) => { _assignmentVm.SelectedServiceDataType = Enumerations.ServiceDataType.TechnicalContact; _navigationService.NavigateTo(Constants.PageKeys.ServiceData); })); actionSheetAlert.AddAction(UIAlertAction.Create("EQUIPO FERREYROS", UIAlertActionStyle.Default, (action) => { _assignmentVm.SelectedServiceDataType = Enumerations.ServiceDataType.FesaTeam; _navigationService.NavigateTo(Constants.PageKeys.ServiceData); })); actionSheetAlert.AddAction(UIAlertAction.Create("Cancel", UIAlertActionStyle.Cancel, (action) => { })); var presentationPopover = actionSheetAlert.PopoverPresentationController; if (presentationPopover != null) { presentationPopover.SourceView = View; presentationPopover.PermittedArrowDirections = UIPopoverArrowDirection.Up; } PresentViewController(actionSheetAlert, true, null); }; var seeDocuments = new TextImageButton { Frame = new CGRect(View.Frame.Width - 120, seeAssignmentInfo.Frame.Y, 70, 70), Image = "Images/documentos.png", Content = "DOCUMENTOS" }; seeDocuments.TouchUpInside += (sender, args) => { _navigationService.NavigateTo(Constants.PageKeys.Documents); }; var activityView = new UIView { Frame = new CGRect(0, seeAssignmentInfo.Frame.Y + seeAssignmentInfo.Frame.Height + 30, View.Frame.Width, View.Frame.Height - header.Frame.Height - principalData.Frame.Height - (seeAssignmentInfo.Frame.Height + 10) - 100), BackgroundColor = UIColor.White }; var activityLabel = new UILabel { Frame = new CGRect(20, 10, 150, 30), Text = "Reportar Actividades", TextAlignment = UITextAlignment.Center, Font = UIFont.FromName("Helvetica-Bold", 15f), TextColor = UIColor.Black }; var addActivity = new TextImageButton { Frame = new CGRect(activityView.Frame.Width - 70, 10, 30, 30), Layer = { CornerRadius = 15, BackgroundColor = UIColor.Green.CGColor }, ClipsToBounds = true, TintColor = UIColor.White, Font = UIFont.FromName("Helvetica-Bold", 30), TitleEdgeInsets = new UIEdgeInsets(-5, -1, 0, 0) }; addActivity.SetTitle("+", UIControlState.Normal); _activityList = new UITableView { Frame = new CGRect(0, addActivity.Frame.Y + addActivity.Frame.Height, activityView.Frame.Width, activityView.Frame.Height - activityLabel.Frame.Height), Source = new ActivityTableSource(), SeparatorColor = UIColor.LightGray, BackgroundColor = UIColor.Clear, RowHeight = 60, PagingEnabled = true }; addActivity.TouchUpInside += (sender, args) => { if (_assignmentVm.ActiveActivity != null) { new UIAlertView(title: "Ferreyros", message: Constants.Messages.ActivityNotFinished, del: null, cancelButtonTitle: "OK", otherButtons: null).Show(); return; } var activity = new Activity { Id = Guid.NewGuid().ToString(), AssignmentId = _assignmentVm.SelectedAssignment.Id, ActivityType = Enumerations.ActivityType.None, State = Enumerations.ActivityState.New, Traces = new List <Trace>() }; if (_assignmentVm.SelectedAssignment.Activities == null) { _assignmentVm.SelectedAssignment.Activities = new List <Activity>(); } _assignmentVm.SelectedAssignment.Activities.Add(activity); _assignmentVm.SelectedActivity = activity; _activityList.ReloadData(); _navigationService.NavigateTo(Constants.PageKeys.ActivityStart); }; activityView.AddSubviews(activityLabel, addActivity, _activityList); var copyRight = new UILabel { Text = "2016 Ferreyros | Derechos Reservados", TextAlignment = UITextAlignment.Center, TextColor = UIColor.White, Font = UIFont.FromName("Helvetica-Light", 10f), Frame = new CGRect(0, View.Frame.Height - 30, View.Frame.Width, 20) }; var closeService = new Button(UIButtonType.RoundedRect) { Content = "CERRAR SERVICIO", Frame = new CGRect(0, copyRight.Frame.Y - 35, View.Frame.Width, 30), Layer = { CornerRadius = 0 }, Font = UIFont.FromName("Helvetica-Bold", 15), Enabled = _assignmentVm.SelectedAssignment.Status != Enumerations.AssignmentStatus.Complete }; closeService.TouchUpInside += (sender, args) => { if (_assignmentVm.ActiveActivity != null) { new UIAlertView(title: "Ferreyros", message: Constants.Messages.ActivityNotFinished, del: null, cancelButtonTitle: "OK", otherButtons: null).Show(); return; } var okCancelAlertController = UIAlertController.Create("Cerrar Servicio", "¿Está seguro que desea cerrar el servicio?, una vez cerrado no podrá editarlo.", UIAlertControllerStyle.Alert); okCancelAlertController.AddAction(UIAlertAction.Create("Si", UIAlertActionStyle.Default, async alert => { _assignmentVm.SelectedAssignment.EndDate = DateTime.Now; _assignmentVm.ActiveAssignment = null; _assignmentVm.SelectedAssignment.Status = Enumerations.AssignmentStatus.Complete; await _assignmentVm.SaveAssignmentAsync(); addActivity.Enabled = false; closeService.Enabled = false; })); okCancelAlertController.AddAction(UIAlertAction.Create("No", UIAlertActionStyle.Cancel, alert => {})); PresentViewController(okCancelAlertController, true, null); }; View.AddSubviews(header, principalData, seeAssignmentInfo, seeDocuments, activityView, closeService, copyRight); }