/// <summary>
        /// Returns true if ContractorCheckResult instances are equal
        /// </summary>
        /// <param name="other">Instance of ContractorCheckResult to be compared</param>
        /// <returns>Boolean</returns>
        public bool Equals(ContractorCheckResult other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }
            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return
                ((
                     CheckName == other.CheckName ||
                     CheckName != null &&
                     CheckName.Equals(other.CheckName)
                     ) &&
                 (
                     Description == other.Description ||
                     Description != null &&
                     Description.Equals(other.Description)
                 ) &&
                 (
                     RiskCodes == other.RiskCodes ||
                     RiskCodes != null &&
                     RiskCodes.Equals(other.RiskCodes)
                 ) &&
                 (
                     IsSucces == other.IsSucces ||
                     IsSucces != null &&
                     IsSucces.Equals(other.IsSucces)
                 ) &&
                 (
                     ContractorName == other.ContractorName ||
                     ContractorName != null &&
                     ContractorName.Equals(other.ContractorName)
                 ) &&
                 (
                     CheckSource == other.CheckSource ||
                     CheckSource != null &&
                     CheckSource.Equals(other.CheckSource)
                 ) &&
                 (
                     IsNeedHandCheck == other.IsNeedHandCheck ||
                     IsNeedHandCheck != null &&
                     IsNeedHandCheck.Equals(other.IsNeedHandCheck)
                 ));
        }
        async Task AddContractorCommandAct()
        {
            // prevent empty name
            if (ContractorName.Length == 0)
            {
                MessagingCenter.Send(this, "emptyContractor");
                return;
            }
            // prevend same name
            for (int i = 0, len = ExistContractorList.Count; i < len; ++i)
            {
                if (ContractorName.Equals(ExistContractorList[i]))
                {
                    MessagingCenter.Send(this, "duplicateContractor");
                    return;
                }
            }

            if (IsBusy)
            {
                return;
            }
            IsBusy = true;

            var isSucceed = await _taskService.AddNewContractor(ContractorName);

            IsBusy = false;

            if (isSucceed)
            {
                MessagingCenter.Send <AddContractorViewModel, String>(this, "AddContractor", ContractorName);
                await Navigation.PopAsync();
            }
            else
            {
                MessagingCenter.Send(this, "AddContractorFailed");
            }
        }
 /// <summary>
 /// Gets the hash code
 /// </summary>
 /// <returns>Hash code</returns>
 public override int GetHashCode()
 {
     unchecked // Overflow is fine, just wrap
     {
         var hashCode = 41;
         // Suitable nullity checks etc, of course :)
         if (CheckName != null)
         {
             hashCode = hashCode * 59 + CheckName.GetHashCode();
         }
         if (Description != null)
         {
             hashCode = hashCode * 59 + Description.GetHashCode();
         }
         if (RiskCodes != null)
         {
             hashCode = hashCode * 59 + RiskCodes.GetHashCode();
         }
         if (IsSucces != null)
         {
             hashCode = hashCode * 59 + IsSucces.GetHashCode();
         }
         if (ContractorName != null)
         {
             hashCode = hashCode * 59 + ContractorName.GetHashCode();
         }
         if (CheckSource != null)
         {
             hashCode = hashCode * 59 + CheckSource.GetHashCode();
         }
         if (IsNeedHandCheck != null)
         {
             hashCode = hashCode * 59 + IsNeedHandCheck.GetHashCode();
         }
         return(hashCode);
     }
 }