/// <summary>Gets diferrences between two verifications</summary>
        /// <param name="item1">Verification base</param>
        /// <param name="item2">Verification to caompare</param>
        /// <returns>String with differences</returns>
        public static string Differences(EquipmentVerificationAct item1, EquipmentVerificationAct item2)
        {
            if (item1 == null || item2 == null)
            {
                return(string.Empty);
            }

            var res = new StringBuilder();

            if (item1.Result != item2.Result)
            {
                res.Append("Result:").Append(item2.Result).Append("; ");
            }

            if (item1.MaxResult != item2.MaxResult)
            {
                res.Append("MaxResult:").Append(item2.MaxResult).Append("; ");
            }

            if (item1.Date != item2.Date)
            {
                res.Append("Date:").Append(item2.Date).Append("; ");
            }

            if (item1.Cost != item2.Cost)
            {
                res.Append("Cost:").Append(item2.Cost).Append("; ");
            }

            if (item1.Responsible.Id != item2.Responsible.Id)
            {
                res.Append("Responsible:").Append(item2.Responsible.Id).Append("; ");
            }

            return(res.ToString());
        }
        /// <summary>Gets verifications of an equipment from database</summary>
        /// <param name="equipmentId">Equipment identififer</param>
        /// <param name="companyId">Company identifier</param>
        /// <returns>List of verifications of an equipment from database</returns>
        public static ReadOnlyCollection <EquipmentVerificationAct> GetByCompany(long equipmentId, int companyId)
        {
            /* CREATE PROCEDURE EquipmentVerificationAct_GetByEquipmentId
             *   @EquipmentId bigint,
             *   @CompanyId int */
            var res = new List <EquipmentVerificationAct>();

            using (var cmd = new SqlCommand("EquipmentVerificationAct_GetByEquipmentId"))
            {
                using (var cnn = new SqlConnection(ConfigurationManager.ConnectionStrings["cns"].ConnectionString))
                {
                    cmd.Connection = cnn;
                    try
                    {
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.Add(DataParameter.Input("@EquipmentId", equipmentId));
                        cmd.Parameters.Add(DataParameter.Input("@CompanyId", companyId));
                        cmd.Connection.Open();
                        using (var rdr = cmd.ExecuteReader())
                        {
                            while (rdr.Read())
                            {
                                EquipmentVerificationAct newEquipmentVerificationAct = new EquipmentVerificationAct()
                                {
                                    Id          = rdr.GetInt64(ColumnsEquipmentVerificationActGet.Id),
                                    CompanyId   = rdr.GetInt32(ColumnsEquipmentVerificationActGet.CompanyId),
                                    EquipmentId = rdr.GetInt64(ColumnsEquipmentVerificationActGet.EquipmentId),
                                    Result      = rdr.GetDecimal(ColumnsEquipmentVerificationActGet.Result),
                                    MaxResult   = rdr.GetDecimal(ColumnsEquipmentVerificationActGet.MaxResult),
                                    Date        = rdr.GetDateTime(ColumnsEquipmentVerificationActGet.Date),
                                    Expiration  = rdr.GetDateTime(ColumnsEquipmentVerificationActGet.Expiration),
                                    EquipmentVerificationType = rdr.GetInt32(ColumnsEquipmentVerificationActGet.EquipmentVerificationType),
                                    Active   = rdr.GetBoolean(ColumnsEquipmentVerificationActGet.Active),
                                    Provider = new Provider()
                                    {
                                        Id          = rdr.GetInt64(ColumnsEquipmentVerificationActGet.ProviderId),
                                        Description = rdr.GetString(ColumnsEquipmentVerificationActGet.ProviderDescription)
                                    },
                                    Responsible = new Employee()
                                    {
                                        Id       = rdr.GetInt32(ColumnsEquipmentVerificationActGet.ResponsibleId),
                                        Name     = rdr.GetString(ColumnsEquipmentVerificationActGet.ResponsibleName),
                                        LastName = rdr.GetString(ColumnsEquipmentVerificationActGet.ResponsibleLastName)
                                    },
                                    ModifiedBy = new ApplicationUser()
                                    {
                                        Id       = rdr.GetInt32(ColumnsEquipmentVerificationActGet.ModifiedByUserId),
                                        UserName = rdr.GetString(ColumnsEquipmentVerificationActGet.ModifiedByUserName)
                                    },
                                    ModifiedOn = rdr.GetDateTime(ColumnsEquipmentVerificationActGet.ModifiedOn)
                                };

                                if (!rdr.IsDBNull(ColumnsEquipmentVerificationActGet.Cost))
                                {
                                    newEquipmentVerificationAct.Cost = rdr.GetDecimal(ColumnsEquipmentVerificationActGet.Cost);
                                }

                                res.Add(newEquipmentVerificationAct);
                            }
                        }
                    }
                    finally
                    {
                        if (cmd.Connection.State != ConnectionState.Closed)
                        {
                            cmd.Connection.Close();
                        }
                    }
                }
            }

            return(new ReadOnlyCollection <EquipmentVerificationAct>(res));
        }