Files
rockfish/util/CustomerUtils.cs
2018-06-28 23:37:38 +00:00

88 lines
2.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Authorization;
using Microsoft.EntityFrameworkCore;
using rockfishCore.Models;
using System.IO;
namespace rockfishCore.Util
{
public static class CustomerUtils
{
/// <summary>
/// Adds email if not already present, handles trimming and check for duplicates etc
/// **DOES NOT CALL SAVE ON CONTEXT, CALLER IS RESPONSIBLE**
/// </summary>
/// <param name="cust"></param>
/// <param name="newEmail"></param>
public static void AddAdminEmailIfNotPresent(Customer cust, string newEmail)
{
AddEmailIfNotPresent(cust, newEmail, true);
}
/// <summary>
/// Adds email if not already present, handles trimming and check for duplicates etc
/// **DOES NOT CALL SAVE ON CONTEXT, CALLER IS RESPONSIBLE**
/// </summary>
/// <param name="cust"></param>
/// <param name="newEmail"></param>
public static void AddSupportEmailIfNotPresent(Customer cust, string newEmail)
{
AddEmailIfNotPresent(cust, newEmail, false);
}
/// <summary>
/// Adds email if not already present, handles trimming and check for duplicates etc
/// **DOES NOT CALL SAVE ON CONTEXT, CALLER IS RESPONSIBLE**
/// </summary>
/// <param name="cust"></param>
/// <param name="newEmail"></param>
/// <param name="isAdmin"></param>
private static void AddEmailIfNotPresent(Customer cust, string newEmail, bool isAdmin)
{
newEmail = newEmail.Trim();
string newEmailAsLower = newEmail.ToLowerInvariant();
string compareTo = cust.AdminEmail;
if (false == isAdmin)
compareTo = cust.SupportEmail;
bool noPriorAddress = false;
if (!string.IsNullOrWhiteSpace(compareTo))
compareTo = compareTo.ToLowerInvariant();
else
noPriorAddress = true;
//See if email is already present
if (false == noPriorAddress && compareTo.Contains(newEmailAsLower))
{
return;//skip this one, it's already there
}
//It's not in the field already so add it
if (noPriorAddress)
{
if (isAdmin)
cust.AdminEmail = newEmail;
else
cust.SupportEmail = newEmail;
}
else
{
if (isAdmin)
cust.AdminEmail = cust.AdminEmail + ", " + newEmail;
else
cust.SupportEmail = cust.SupportEmail + ", " + newEmail;
}
}
}//eoc
}//eons