public AddVisitorSuccessModel AddVisitor(AddVisitorModel visitorData) { var addVisitorSuccess = new AddVisitorSuccessModel(); try { using (OggleBoobleMySqContext db = new OggleBoobleMySqContext()) { CategoryFolder categoryFolder = db.CategoryFolders.Where(f => f.Id == visitorData.PageId).FirstOrDefault(); if (categoryFolder != null) { addVisitorSuccess.PageName = categoryFolder.FolderName; } var existingVisitor = db.Visitors.Where(v => v.IpAddress == visitorData.IpAddress).FirstOrDefault(); if (existingVisitor != null) { addVisitorSuccess.VisitorId = existingVisitor.VisitorId; addVisitorSuccess.IsNewVisitor = false; } else { // We have a new visitor! //string dnsHostName = Dns.GetHostName(); //IPHostEntry ipEntry = Dns.GetHostEntry(dnsHostName); //IPAddress[] iPAddresses = ipEntry.AddressList; //string ipAddress = iPAddresses[iPAddresses.Length - 1].ToString(); string newVisitorId = Guid.NewGuid().ToString(); Visitor newVisitor = new Visitor() { VisitorId = newVisitorId, InitialPage = visitorData.PageId, City = visitorData.City, Country = visitorData.Country, GeoCode = visitorData.GeoCode, Region = visitorData.Region, InitialVisit = DateTime.Now, IpAddress = visitorData.IpAddress }; db.Visitors.Add(newVisitor); db.SaveChanges(); addVisitorSuccess.VisitorId = newVisitorId; addVisitorSuccess.IsNewVisitor = true; } addVisitorSuccess.Success = "ok"; } } catch (Exception ex) { addVisitorSuccess.Success = Helpers.ErrorDetails(ex); } return(addVisitorSuccess); }
public AddVisitorSuccessModel AddUniqueIpVisitor(string visitorId, string ipAddress, string calledFrom, int initialPage) { AddVisitorSuccessModel successModel = new AddVisitorSuccessModel(); try { using (var db = new OggleBoobleMySqlContext()) { Visitor existingVisitor = db.Visitors.Where(v => v.IpAddress == ipAddress).FirstOrDefault(); if (existingVisitor == null) { var newVisitor = new Visitor() { VisitorId = visitorId, IpAddress = ipAddress, Country = "ZZ", City = calledFrom, GeoCode = "", Region = "", InitialPage = initialPage, InitialVisit = DateTime.Now }; db.Visitors.Add(newVisitor); db.SaveChanges(); successModel.ErrorMessage = "ok"; } else { successModel.ErrorMessage = "existing Ip"; successModel.ExistingVisitorId = existingVisitor.VisitorId; } successModel.Success = "ok"; } } catch (Exception ex) { successModel.Success = Helpers.ErrorDetails(ex); } return(successModel); }