I want to create a generic method for this type of methods that take two types of common values?
I do not want the overload methods for auditing to do the same redundant work.
public class UserProfile : IUserProfile
{
private static void GetAudit(ChangePasswordRequest changePasswordRequest, ChangePasswordResponse changePasswordResponse,
int memberId, RemoteEndpointMessageProperty endpointProperty)
{
string auditText = "ChangePassword Req:";
auditText += Util.Serialize(changePasswordRequest).ToString(CultureInfo.InvariantCulture);
auditText += "Res:";
auditText += Util.Serialize(changePasswordResponse).ToString(CultureInfo.InvariantCulture);
Audit.Add(AuditEventType.UpdatePassword, Severity.Normal, memberId,
changePasswordRequest.TokenId,
auditText,
endpointProperty.Address, changePasswordRequest.IpAddress);
}
private static void GetAudit(LoadSupplierRequest loadSupplierRequest, LoadSupplierResponse loadSupplierResponse,int memberID,
RemoteEndpointMessageProperty endpointProperty)
{
string auditText = "LoadSupplier Req:";
auditText += Util.Serialize(loadSupplierRequest).ToString(CultureInfo.InvariantCulture);
auditText += "Res:";
auditText += Util.Serialize(loadSupplierResponse).ToString(CultureInfo.InvariantCulture);
Audit.Add(AuditEventType.LoadSupplier, Severity.Normal, memberID, loadSupplierRequest.TokenId,
auditText,
endpointProperty.Address, loadSupplierRequest.IpAddress);
}
}
The following is the structure of the class and interface
public class ChangePasswordResponse : IResponse
{
[DataMember]
public ChangePasswordResponseStatus Status { get; set; }
[DataMember]
public Error Error { get; set; }
[DataMember]
public string TokenId { get; set; }
}
public interface IResponse
{
[DataMember]
Error Error { get; set; }
[DataMember]
string TokenId { get; set; }
}
public interface IRequest
{
[DataMember(IsRequired = true)]
string IpAddress { get; set; }
[DataMember(IsRequired = true)]
string TokenId { get; set; }
}
[Serializable]
public class ChangePasswordRequest : IRequest
{
[DataMember(IsRequired = true)]
public string OldPassword { get; set; }
[DataMember(IsRequired = true)]
public string NewPassword { get; set; }
[DataMember(IsRequired = true)]
public string IpAddress { get; set; }
[DataMember(IsRequired = true)]
public string TokenId { get; set; }
}
source
share