Ejemplo n.º 1
0
        public ActionResult SetCompetitionValues(long placeId, long industryId)
        {
            string key = string.Format("cv-{0}-{1}", placeId, industryId);

            //HttpCookie cookie = SizeUp.Core.Web.CookieFactory.Create(key);
            Data.UserData.CompetitorAttribute  attr          = new Data.UserData.CompetitorAttribute();
            Data.Analytics.CompetitorAttribute analyticsAttr = new Data.Analytics.CompetitorAttribute();
            attr.PlaceId             = placeId;
            attr.IndustryId          = industryId;
            analyticsAttr.PlaceId    = placeId;
            analyticsAttr.IndustryId = industryId;

            var ids = Form.IntValues("competitor") ?? new int?[0];

            attr.Competitors = string.Join(",", ids);

            analyticsAttr.CompetitorsEmployeesMin = Form.IntValue("competitorsEmployeesMin");
            analyticsAttr.CompetitorsEmployeesMax = Form.IntValue("competitorsEmployeesMax");

            ids            = Form.IntValues("supplier") ?? new int?[0];
            attr.Suppliers = string.Join(",", ids);

            analyticsAttr.SuppliersEmployeesMin = Form.IntValue("suppliersEmployeesMin");
            analyticsAttr.SuppliersEmployeesMax = Form.IntValue("suppliersEmployeesMax");

            ids         = Form.IntValues("buyer") ?? new int?[0];
            attr.Buyers = string.Join(",", ids);

            analyticsAttr.BuyersEmployeesMin = Form.IntValue("buyersEmployeesMin");
            analyticsAttr.BuyersEmployeesMax = Form.IntValue("buyersEmployeesMax");

            var id = Form.StringValue("rootId");

            attr.RootId = int.Parse(id);
            id          = Form.StringValue("consumerExpenditureVariable");

            int temp;

            if (int.TryParse(id, out temp))
            {
                attr.ComsumerExpenditureId = temp;
            }

            if (User.Identity.IsAuthenticated)
            {
                using (var context = ContextFactory.UserDataContext)
                {
                    var  user   = Membership.GetUser(User.Identity.Name);
                    Guid userid = (Guid)user.ProviderUserKey;
                    attr.UserId          = userid;
                    analyticsAttr.UserId = userid;

                    var item = context.CompetitorAttributes.Where(i => i.UserId == userid && i.PlaceId == placeId && i.IndustryId == industryId).FirstOrDefault();
                    if (item != null)
                    {
                        Func <string[], string[], bool> tester = (string[] a, string[] b) => (a.Length == b.Length && a.Intersect(b).Count() == a.Length);

                        if (!tester(item.Competitors != null ? item.Competitors.Split(',') : "".Split(','), attr.Competitors != null ? attr.Competitors.Split(',') : "".Split(',')) ||
                            !tester(item.Suppliers != null ? item.Suppliers.Split(',') : "".Split(','), attr.Suppliers != null ? attr.Suppliers.Split(',') : "".Split(',')) ||
                            !tester(item.Buyers != null ? item.Buyers.Split(',') : "".Split(','), attr.Buyers != null ? attr.Buyers.Split(',') : "".Split(',')) ||
                            item.RootId != attr.RootId ||
                            item.ComsumerExpenditureId != attr.ComsumerExpenditureId)
                        {
                            item.Competitors           = attr.Competitors;
                            item.Buyers                = attr.Buyers;
                            item.Suppliers             = attr.Suppliers;
                            item.RootId                = attr.RootId;
                            item.ComsumerExpenditureId = attr.ComsumerExpenditureId;
                            context.SaveChanges();
                        }
                    }
                    else
                    {
                        context.CompetitorAttributes.AddObject(attr);
                        context.SaveChanges();
                    }
                }
            }
            analyticsAttr.Competitors           = attr.Competitors;
            analyticsAttr.Buyers                = attr.Buyers;
            analyticsAttr.Suppliers             = attr.Suppliers;
            analyticsAttr.RootId                = attr.RootId;
            analyticsAttr.ComsumerExpenditureId = attr.ComsumerExpenditureId;
            Singleton <Tracker> .Instance.CompetitorAttribute(analyticsAttr);


            //Response.Cookies.Add(cookie);
            return(Json(true, JsonRequestBehavior.AllowGet));
        }
Ejemplo n.º 2
0
        public ActionResult GetCompetitionValues(long placeId, long industryId)
        {
            dynamic obj = new System.Dynamic.ExpandoObject();
            string  key = string.Format("cv-{0}-{1}", placeId, industryId);

            //var cookie = Request.Cookies[key] != null ? Request.Cookies[key] : SizeUp.Core.Web.CookieFactory.Create(key);
            Data.UserData.CompetitorAttribute attr = new Data.UserData.CompetitorAttribute();

            if (User.Identity.IsAuthenticated)
            {
                using (var context = ContextFactory.UserDataContext)
                {
                    var  user   = Membership.GetUser(User.Identity.Name);
                    Guid userid = (Guid)user.ProviderUserKey;
                    attr = context.CompetitorAttributes.Where(i => i.UserId == userid && i.PlaceId == placeId && i.IndustryId == industryId).FirstOrDefault();
                    if (attr == null)
                    {
                        attr = new Data.UserData.CompetitorAttribute();
                    }
                }
            }



            if (!string.IsNullOrEmpty(attr.Competitors))
            {
                obj.competitor = attr.Competitors.Split(',').Select(i => long.Parse(i)).ToList();
            }
            if (!string.IsNullOrEmpty(attr.Suppliers))
            {
                obj.supplier = attr.Suppliers.Split(',').Select(i => long.Parse(i)).ToList();
            }
            if (!string.IsNullOrEmpty(attr.Buyers))
            {
                obj.buyer = attr.Buyers.Split(',').Select(i => long.Parse(i)).ToList();
            }
            if (attr.ComsumerExpenditureId.HasValue && attr.RootId.HasValue)
            {
                obj.consumerExpenditureVariable = attr.ComsumerExpenditureId;
                obj.rootId = attr.RootId;
            }

            //if (cookie.Values.AllKeys.Contains("competitor"))
            //{
            //    obj.competitor = cookie.Values["competitor"].Split(',').Select(i => long.Parse(i)).ToList();
            //}
            //if (cookie.Values.AllKeys.Contains("supplier"))
            //{
            //    obj.supplier = cookie.Values["supplier"].Split(',').Select(i => long.Parse(i)).ToList();
            //}
            //if (cookie.Values.AllKeys.Contains("buyer"))
            //{
            //    obj.buyer = cookie.Values["buyer"].Split(',').Select(i => long.Parse(i)).ToList();
            //}
            //if (cookie.Values.AllKeys.Contains("consumerExpenditureVariable") && cookie.Values.AllKeys.Contains("rootId"))
            //{
            //    obj.consumerExpenditureVariable = long.Parse(cookie.Values["consumerExpenditureVariable"]);
            //    obj.rootId = long.Parse(cookie.Values["rootId"]);
            //}

            object output = ((ExpandoObject)obj).ToDictionary(item => item.Key, item => item.Value);

            return(Json(output, JsonRequestBehavior.AllowGet));
        }