public async Task Register_ReturnsCorrectJson_WhenApiResult_IsSuccess() { const TaskResultStatus volunteerTaskSignUpResultStatus = TaskResultStatus.Success; var model = new VolunteerTaskSignupViewModel(); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.Is <VolunteerTaskSignupCommand>(y => y.TaskSignupModel == model))) .ReturnsAsync(new VolunteerTaskSignupResult { Status = volunteerTaskSignUpResultStatus, VolunteerTask = new VolunteerTask { Id = 1, Name = "Task" } }); var sut = new TaskApiController(mediator.Object, null, null); var jsonResult = await sut.RegisterTask(model) as JsonResult; var successStatus = jsonResult.GetValueForProperty <bool>("isSuccess"); var volunteerTaskModel = jsonResult.GetValueForProperty <VolunteerTaskViewModel>("task"); Assert.True(successStatus); Assert.NotNull(volunteerTaskModel); }
public async Task Register_ReturnsCorrectJson_WhenTaskIsClosed() { const TaskResultStatus volunteerTaskSignUpResultStatus = TaskResultStatus.Failure_ClosedTask; var model = new VolunteerTaskSignupViewModel(); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.SendAsync(It.Is <VolunteerTaskSignupCommand>(y => y.TaskSignupModel == model))) .ReturnsAsync(new VolunteerTaskSignupResult { Status = volunteerTaskSignUpResultStatus }); var sut = new TaskApiController(mediator.Object, null, null); var jsonResult = await sut.RegisterTask(model) as JsonResult; var successStatus = jsonResult.GetValueForProperty <bool>("isSuccess"); var errors = jsonResult.GetValueForProperty <string[]>("errors"); Assert.False(successStatus); Assert.NotNull(errors); Assert.Single(errors); Assert.Equal("Signup failed - Task is closed", errors[0]); }
/// <summary> /// convert a TaskResultStatus enum to its string representation /// </summary> /// <param name="status">target status</param> /// <returns>string representation of a checklist status enum</returns> public static String GetDescription(this TaskResultStatus status) { FieldInfo field = status.GetType().GetField(status.ToString()); DescriptionAttribute attribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute)) as DescriptionAttribute; return(attribute == null?status.ToString() : attribute.Description); }
public TimelineViewModel(Timeline timeline) { _testDate = timeline.date; if (timeline.result == "Pass") { _status = TaskResultStatus.Passed; } else { _status = TaskResultStatus.Failed; } var defects = timeline.DefectReport.Select(s => new TimelineDefectViewModel(s)).ToList(); _defects = new ObservableCollection <TimelineDefectViewModel>(defects); if (defects.Count > 0) { IsDefectsEmpty = false; IsDefectsNotEmpty = true; } else { IsDefectsEmpty = true; IsDefectsNotEmpty = false; } }
public TaskResult(TaskResultStatus thisResult, DateTime date, String userCode, int id, List <CheckItem> checkItems) { ThisResult = thisResult; Date = date; UserCode = userCode; Id = id; Checklist = new List <CheckItem>(); foreach (CheckItem checkItem in checkItems) { Checklist.Add(checkItem); } }
/// <summary> /// 作为查询条件使用的作业结果状态 /// </summary> /// <param name="bForSearchUse"> /// 是否供查询用,对于: /// 一、是,则添加一提示项; /// 二、否,则不添加提示项; /// </param> /// <returns>作为查询条件使用的作业结果状态</returns> public IList <TaskResultStatus> GetTaskResultStatuses(bool bForSearchUse) { IList <TaskResultStatus> statuses = new List <TaskResultStatus>(dal.GetTaskResultStatuses()); if (bForSearchUse) { TaskResultStatus status = new TaskResultStatus(); status.StatusName = "-状态-"; status.TaskResultStatusId = -1; statuses.Insert(0, status); } return(statuses); }
public static String GetResultIconUrl(this TaskResultStatus status) { switch (status) { case TaskResultStatus.Failed : return("result-failed.png"); case TaskResultStatus.Passed : return("result-passed.png"); default : return(""); } }
public static Color GetBgColor(this TaskResultStatus status) { switch (status) { //ready and scheduled - orange shade case TaskResultStatus.Failed : return(Color.FromRgba(255 / 255, 0, 0, 0.2)); case TaskResultStatus.Passed : return(Color.FromRgba(46 / 255d, 204 / 255d, 113 / 255d, 0.2)); default : return(Color.FromRgba(255, 255, 255, 0)); } }
public static String GetColor(this TaskResultStatus status) { switch (status) { //ready and scheduled - orange shade case TaskResultStatus.Failed : return("Red"); case TaskResultStatus.Passed : return("Green"); default : return("White"); } }
public TestListPageViewModel(List <CheckItemViewModel> checkItems, List <CommentViewModel> comments, TaskResultStatus?lastResult, TaskResultStatus thisResult, int serviceVisitId, int serviceVisitItemNumber) { CheckItems = new ObservableCollection <CheckItemViewModel>(); Comments = new ObservableCollection <CommentViewModel>(comments); LastResult = lastResult; ThisResult = thisResult; _serviceVisitId = serviceVisitId; _serviceVisitItemNumber = serviceVisitItemNumber; //need to create each one so that if user click back without saving, the changes are not saved foreach (CheckItemViewModel item in checkItems) { CheckItemViewModel tempItem = new CheckItemViewModel(); tempItem.Id = item.Id; tempItem.StepNumber = item.StepNumber; tempItem.Description = item.Description; tempItem.Status = item.Status; tempItem.Comment = item.Comment; tempItem.Fields = new ObservableCollection <CheckItemFieldViewModel>(); if (item.Fields != null) { foreach (CheckItemFieldViewModel field in item.Fields) { CheckItemFieldViewModel tempField = new CheckItemFieldViewModel(); tempField.Description = field.Description; tempField.Value = field.Value; tempField.FieldType = field.FieldType; tempItem.Fields.Add(tempField); } } CheckItems.Add(tempItem); } _taskServices = new TaskServices(); //instantiate commands NavigateToAddCommentCommand = new Command(NavigateToAddComment); ChangePassStatusCommand = new Command(ChangePassStatus); ChangeFailStatusCommand = new Command(ChangeFailStatus); SaveTaskTestCommand = new Command <Task>(async(Task task) => await SaveTaskTest()); }
public static string ToIntString(this TaskResultStatus status) { return(((int)status).ToString()); }
/// <summary> /// Send the test result to server /// </summary> /// <param name="serviceVisitId"></param> /// <param name="serviceVisitItemNumber"></param> /// <param name="status">status of the test</param> /// <param name="checklists">list of check items</param> /// <returns></returns> public async Task <bool> SendResult(int serviceVisitId, int serviceVisitItemNumber, TaskResultStatus status, TaskResult taskResult) { String url = Configuration.baseURL + "/tasks/" + serviceVisitId + "/SendResult"; String user = CrossSecureStorage.Current.GetValue("UserName"); TaskResult result = new TaskResult(status, DateTime.Now, user, serviceVisitItemNumber, taskResult.Checklist); var json = JsonConvert.SerializeObject(result); var content = new StringContent(json, Encoding.UTF8, "application/json"); try { //set token String token = CrossSecureStorage.Current.GetValue("Token"); _httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token); var respond = await _httpClient.PutAsync(url, content); if (respond.StatusCode == System.Net.HttpStatusCode.OK) { return(true); } else { Console.Out.WriteLine("Send report failed from TaskService.cs. Http returned: " + respond.StatusCode); return(false); } } catch (Exception e) { Console.Out.WriteLine("Send report failed from TaskService.cs. Error message: " + e.Message); return(false); } }
/// <summary> /// Send the test result to server /// </summary> /// <param name="serviceVisitId"></param> /// <param name="serviceVisitItemNumber"></param> /// <param name="status">status of the test</param> /// <param name="checklists">list of check items</param> /// <returns></returns> public async Task <bool> SendResult(int serviceVisitId, int serviceVisitItemNumber, TaskResultStatus status, List <CheckItemViewModel> checklists) { String url = Configuration.baseURL + "/tasks/" + serviceVisitItemNumber + "/SendResult"; String user = CrossSecureStorage.Current.GetValue("UserName"); TaskResult result = new TaskResult(status, DateTime.Now, user, serviceVisitItemNumber, checklists); var json = JsonConvert.SerializeObject(result); var content = new StringContent(json, Encoding.UTF8, "application/json"); try { var current = Connectivity.NetworkAccess; if (current == NetworkAccess.Internet) { //set token String token = CrossSecureStorage.Current.GetValue("Token"); _httpClient.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token); var respond = await _httpClient.PutAsync(url, content); if (respond.StatusCode == System.Net.HttpStatusCode.OK) { return(true); } else { Console.Out.WriteLine("Send report failed from TaskService.cs. Http returned: " + respond.StatusCode); return(false); } } else { foreach (CheckItemViewModel checkItemViewModel in checklists) { CheckItem checkItem = new CheckItem(checkItemViewModel); CheckItemDBInfo checkItemDBInfo = await App.CheckItemDatabase.GetChecklistAsync(serviceVisitItemNumber, checkItem.Id); checkItemDBInfo.SendTotalResultFlag = true; checkItemDBInfo.totalTestResult = status.ToString(); checkItemDBInfo.ServiceVisitId = serviceVisitId; var DBresult = App.CheckItemDatabase.SaveCheckListInfoAsync(checkItemDBInfo); } return(true); } } catch (Exception e) { Console.Out.WriteLine("Send report failed from TaskService.cs. Error message: " + e.Message); return(false); } }
public TaskResult(TaskResultStatus taskStatus, string message = "", T value = default) { TaskStatus = taskStatus; Message = message; Value = value; }
public TaskResult(TaskResultStatus status, string description) { Description = description; Status = status; }