public ServiceResult AddLog(AffiliateLog access) { if (access == null) { return(ServiceResponse.Error("No data sent.")); } if (string.IsNullOrWhiteSpace(access.Name)) { return(ServiceResponse.Error("Target name not set.")); } NetworkHelper network = new NetworkHelper(); access.ClientIp = network.GetClientIpAddress(this.Request); AffliateManager affliateManager = new AffliateManager(Globals.DBConnectionKey); var logRes = affliateManager.Insert(access); if (CurrentUser == null || string.IsNullOrWhiteSpace(CurrentUser.UUParentID) == false) { return(logRes); } UserManager um = new UserManager(Globals.DBConnectionKey, this.GetAuthorizationToken(this.Request)); User referringUser = new User(); string type = access.NameType?.ToUpper(); switch (type) { case "USER": referringUser = um.Search(access.Name, false).FirstOrDefault(x => x.Name.EqualsIgnoreCase(access.Name)); if (referringUser == null) { return(logRes); } break; //default: // referringUser = um.Search(access.Name, false).FirstOrDefault(x => x.Name.EqualsIgnoreCase(access.Name)); // if (referringUser == null) // return logRes; // break; } var userRes = um.GetUser(CurrentUser.UUID, false); if (userRes.Code == 200) { var targetUser = (User)userRes.Result; targetUser.UUParentID = referringUser.UUID; targetUser.UUParentIDType = referringUser.UUIDType; um.Update(targetUser); } return(logRes); }
public ServiceResult AddLog(AffiliateLog access) { if (access == null) { return(ServiceResponse.Error("No data sent.")); } NetworkHelper network = new NetworkHelper(); access.ClientIp = network.GetClientIpAddress(this.Request); AffiliateManager affliateManager = new AffiliateManager(Globals.DBConnectionKey, this.GetAuthToken(this.Request)); access.DateCreated = DateTime.UtcNow; var logRes = affliateManager.InsertLog(access); if (CurrentUser == null) { CurrentUser = this.GetUser(this.GetAuthToken(this.Request)); } if (CurrentUser == null) { return(logRes); } UserManager um = new UserManager(Globals.DBConnectionKey, this.GetAuthToken(this.Request)); User referringUser = new User(); string type = access.NameType?.ToUpper(); switch (type) { case "USER": referringUser = um.Search(access.Name, false).FirstOrDefault(x => x.Name.EqualsIgnoreCase(access.Name) || x.UUID == access.Name); if (referringUser == null) { return(logRes); } var userRes = um.GetUser(CurrentUser.UUID, false); if (userRes.Code == 200) { var targetUser = (User)userRes.Result; if (string.IsNullOrWhiteSpace(access.ClientUserUUID)) { access.ClientUserUUID = CurrentUser.UUID; } access.ReferringUUID = referringUser.UUID; access.ReferringUUIDType = referringUser.UUIDType; affliateManager.UpdateLog(access); if (referringUser.UUID == CurrentUser.UUID) { return(logRes); } // if the user doesn't have a referring member set, then this user get it. if (string.IsNullOrWhiteSpace(targetUser.ReferringMember)) { targetUser.ReferringMember = referringUser.UUID; targetUser.ReferralDate = DateTime.UtcNow; um.Update(targetUser); } } break; case "ACCOUNT": //this is most likely out bound case "EVENT": //this is most likely out bound if (string.IsNullOrWhiteSpace(access.ClientUserUUID)) { access.ClientUserUUID = CurrentUser.UUID; } var usr = um.Get(CurrentUser.UUID); if (usr.Code == 200) { access.ReferringUUID = ((User)usr.Result).ReferringMember; // CurrentUser.ReferringMember; //whomever signed up this user (if any), gets the referral to the outbound link } affliateManager.UpdateLog(access); break; case "PROFILE": break; //default: // referringUser = um.Search(access.Name, false).FirstOrDefault(x => x.Name.EqualsIgnoreCase(access.Name)); // if (referringUser == null) // return logRes; // break; } return(logRes); }