/// <summary> /// صحت کد ملی وارد شده را برسی می کند @cite fa_wiki_irnationalid /// </summary> /// <param name="input">رشته کد ملی</param> /// <returns>bool</returns> public static bool IsValid(IRNationalID value) { string input = value.m_value; float sum = 0; int controlDigit = int.Parse(input[input.Length - 1].ToString()); ///[Multilplying each digit by its own position and summing them up] for (int i = 0; i < 9; i++) { sum += float.Parse(input[i].ToString()) * (10 - i); } ///[Multilplying each digit by its own position and summing them up] float mod = sum % 11; ///[Either less than two or equal to control digit] if (mod < 2 && mod == controlDigit) { return(true); } else if (11 - mod == controlDigit) { return(true); } ///[Either less than two or equal to control digit] return(false); }
/// <summary> /// با استفاده از رشته ورودی یک IRNationalID می سازد. و موفقیت یا عدم موفقیت عمل را بر می گرداند. /// </summary> /// <param name="s">رشته متناظر با IRNAtionalID</param> /// <param name="result">IRNationalID ایجاد شده</param> /// <returns>نتیجه عمل Parse</returns> public static bool TryParse(string s, out IRNationalID result) { result = null; try { result = IRNationalID.Parse(s); } catch (Exception) { return(false); } return(true); }
/// <summary> /// برسی یکسان بودن نمونه جاری با نمونه ورودی /// </summary> /// <param name="obj">نمونه وردی</param> /// <returns>نتیجه برسی</returns> public override bool Equals(object obj) { if (obj == null) { return(false); } if (!(obj is IRNationalID)) { return(false); } IRNationalID a = this; IRNationalID b = (IRNationalID)obj; return(a.m_value == b.m_value); }
/// <summary> /// برسی یکسان بودن نمونه جاری با نمونه ورودی /// </summary> /// <param name="obj">نمونه وردی</param> /// <returns>نتیجه برسی</returns> public override bool Equals(object obj) { bool areEqual = true; if (obj == null) { return(false); } if (!(obj is Employee)) { return(false); } Employee A = (Employee)this; Employee B = (Employee)obj; areEqual &= A.ID.Equals(B.ID); areEqual &= A.FirstName == B.FirstName; areEqual &= A.LastName == B.LastName; areEqual &= A.Gender == B.Gender; areEqual &= A.DateOfBirth == B.DateOfBirth; areEqual &= IRNationalID.Equals(A.NationalID, B.NationalID); areEqual &= A.IdentityNumber == B.IdentityNumber; areEqual &= EmployeeID.Equals(A.EmployeeID, B.EmployeeID); areEqual &= WorkSchedule.Equals(A.WorkSchedule, B.WorkSchedule); // areEqual &= A.ProfilePicture ==B.ProfilePicture; areEqual &= A.ContactInformations.Count == B.ContactInformations.Count; for (int i = 0; areEqual && i < A.ContactInformations.Count; i++) { areEqual &= ContactInformation.Equals(A.ContactInformations[i], B.ContactInformations[i]); } return(areEqual); }