Example #1
0
        public string DoWork(CounterData data)
        {
            IncomingWebRequestContext context = WebOperationContext.Current?.IncomingRequest;
            data.Agent = context?
                .UserAgent;
            var coockie = data.Cookie.Replace('\"', ' ').Trim();
            Contact contact = _activityBusinessLogic.GetAllEntities()
                    .FirstOrDefault(x => (x.Cookie == coockie && x.UserAgent == data.Agent) || x.Ip == data.Ip)?
                    .Author;
            if (contact == null)
            {
                contact = new Contact
                {
                    Ip = data.Ip,
                    Name = data.Ip
                };
                contact.CreateDate = DateTime.Now;
                _contactBusinessLogic.Add(contact);
            }
            string returns = Guid.NewGuid().ToString();


            Activity activity = new Activity();
            activity.Author = contact;
            activity.CreateDate = DateTime.Now;
            if (data.Cookie != null)
            {
                activity.Cookie = data.Cookie;
            }
            else
            {
                activity.Cookie = returns;
            }
            activity.UserAgent = data.Agent;
            activity.Type = _activityBusinessLogic.GetActivityType(int.Parse(ActivityEnum.Visit.ToString("D")));
            //activity.TypeCode = int.Parse(ActivityEnum.Visit.ToString("D"));
            foreach (var item in data.Tags.Split(',').ToList())
            {
                var tag = _activityBusinessLogic.GetTagByName(item);
                if (tag != null)
                {
                    if (activity.Tag == null)
                    {
                        activity.Tag = new List<Tag>();
                    }
                    activity.Tag.Add(tag);
                }
                else
                {
                    //TODO Выпилить и выдавать ошибку в лог на этом этапе
                    var tg = new Tag { Name = item };
                    //activityLogic.Add(tg);
                    activity.Tag.Add(tg);
                }
            }
            _activityBusinessLogic.InsertNew(activity);
            return activity.Cookie;
        }
Example #2
0
        public static void GetContactFromComments(FbComments[] data, SocialNetworkEvent socialEvent)
        {
            try
            {
                var activityTypeBusinessLogic = new DictionaryBusinessLogic<ActivityType>(new DictionaryRepository<ActivityType>(_factory));
                var activityBusinessLogic = new ActivityBusinessLogic(new ActivityRepository(_factory), new TagBusinessLogic(new TagRepository(_factory)),
                new DictionaryBusinessLogic<ActivityType>(new DictionaryRepository<ActivityType>(new DatabaseFactory())));


                foreach (var comments in data)
                {
                    foreach (var fbFrom in comments.data.Select(x => x.@from))
                    {
                        var contact = TryAddContact(fbFrom.id, fbFrom.name);
                        var activity = new Activity
                        {
                            Author = contact,
                            CreateDate = DateTime.Now,
                            Type = activityTypeBusinessLogic.GetByCode(int.Parse(ActivityEnum.Comment.ToString("D")))
                        };
                        activityBusinessLogic.Add(activity);
                        socialEvent.Activities.Add(activity);
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }
Example #3
0
        public static void GetContactFromLikes(FbLikes[] data, SocialNetworkEvent socialEvent)
        {
            try
            {
                var activityBusinessLogic = new ActivityBusinessLogic(new ActivityRepository(_factory), new TagBusinessLogic(new TagRepository(_factory)),
                new DictionaryBusinessLogic<ActivityType>(new DictionaryRepository<ActivityType>(_factory)));

                foreach (var likes in data)
                {
                    foreach (var like in likes.data)
                    {
                        var contact = TryAddContact(like.id, like.name);
                        var activity = new Activity
                        {
                            Author = contact,
                            CreateDate = DateTime.Now,
                            Type = activityBusinessLogic.GetActivityType(int.Parse(ActivityEnum.Like.ToString("D")))
                        };
                        //activityBusinessLogic.Add(activity);
                        socialEvent.Activities.Add(activity);
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
        }