Beispiel #1
0
        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);
        }
Beispiel #2
0
        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]);
        }
Beispiel #3
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);
        }
Beispiel #4
0
        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);
     }
 }
Beispiel #6
0
        /// <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);
        }
Beispiel #7
0
        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("");
            }
        }
Beispiel #8
0
        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));
            }
        }
Beispiel #9
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");
            }
        }
Beispiel #10
0
        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());
        }
Beispiel #11
0
 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);
            }
        }
Beispiel #14
0
 public TaskResult(TaskResultStatus taskStatus, string message = "", T value = default)
 {
     TaskStatus = taskStatus;
     Message    = message;
     Value      = value;
 }
Beispiel #15
0
 public TaskResult(TaskResultStatus status, string description)
 {
     Description = description;
     Status      = status;
 }