Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }