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; }
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; } }
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; } }