Exemplo n.º 1
0
 private static VisitData SetGeoData(this VisitData vd, string country, string region)
 {
     vd.GeoData = new WhoIsInformation {
         Country = country, Region = region
     };
     return(vd);
 }
Exemplo n.º 2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // 로그인 체크  check login
        EmployeeInfo loginEmployee = new EmployeeInfo();
        VisitData    bllVisit      = new VisitData();
        TakeOutData  bllTakeOut    = new TakeOutData();

        loginEmployee = (EmployeeInfo)Session["loginMember"];
        if (loginEmployee == null)
        {
            Response.Redirect("~/login.aspx", true);
        }

        if (loginEmployee.ManagerLevel < 1)
        {
            Response.Redirect("~/login.aspx", true);
        }

        if (Request.QueryString["mode"].Equals("takeOut"))
        {
            int result = bllTakeOut.updateApprove(Request.QueryString["takeOutDataCode"], Request.QueryString["status"], "");
            Page.RegisterClientScriptBlock("alert", JavaScriptBuilder.alert("Đã hoàn thành (처리 하였습니다).", "takeOutDataList.aspx?keyWord=" + Request.QueryString["keyWord"] + "&key=" + Request.QueryString["key"]));
        }
        else if (Request.QueryString["mode"].Equals("visit"))
        {
            int result = bllVisit.updateApprove(Request.QueryString["visitDataCode"], Request.QueryString["status"], "");
            Page.RegisterClientScriptBlock("alert", JavaScriptBuilder.alert("Đã hoàn thành (처리 하였습니다).", "visitDataList.aspx?keyWord=" + Request.QueryString["keyWord"] + "&key=" + Request.QueryString["key"] + "&page=" + Request.QueryString["page"]));
        }
    }
Exemplo n.º 3
0
        private TrickleInfo GetTrickleInfo(MessageItem message, VisitData visitData, PlanData planData)
        {
            MessageStateInfo messageStateInfo = this.GetMessageStateInfo(message);
            TrickleInfo      info3            = new TrickleInfo();

            info3.ID     = messageStateInfo.ID;
            info3.Name   = messageStateInfo.Name;
            info3.HasAbn = messageStateInfo.HasAbn;
            TrickleInfo info2      = info3;
            int         emailCount = -1;

            if (planData != null)
            {
                PlanStatistics planStatistics = this.analyticsFactory.GetPlanStatistics(planData);
                info2.OpenRate   = planStatistics.GetOpenRate();
                info2.Recipients = planStatistics.GetTotal();
                emailCount       = planStatistics.GetActual();
            }
            if (visitData != null)
            {
                info2.ValuePerVisit = visitData.ValuePerVisit;
                if (emailCount > -1)
                {
                    info2.ValuePerEmail = this.analyticsFactory.GetVisitStatistics(visitData).GetValuePerEmail(emailCount);
                }
            }
            return(info2);
        }
Exemplo n.º 4
0
 public static bool AddNewVisit(SqlConnection sqlConnection, VisitData visitData)
 {
     try
     {
         sqlConnection.Open();
         string command = $"EXEC ADD_VISIT " +
                          $"@stationID, @courseID," +
                          $"@visitOrder, @availableSeats, @date";
         var sqlCommand = new SqlCommand(command, sqlConnection);
         sqlCommand.Parameters.AddWithValue("@stationID", visitData.stationID);
         sqlCommand.Parameters.AddWithValue("@courseID", visitData.courseID);
         sqlCommand.Parameters.AddWithValue("@visitOrder", visitData.visitOrder);
         sqlCommand.Parameters.AddWithValue("@availableSeats", visitData.avaibleSeats);
         sqlCommand.Parameters.AddWithValue("@date", visitData.date);
         sqlCommand.ExecuteNonQuery();
     }
     catch
     {
         Debug.WriteLine("Błąd zapytania do bazy danych!");
         return(false);
     }
     finally
     {
         sqlConnection.Close();
     }
     return(true);
 }
 private DispatchedMessageInfo BuildDispatchMessageInfo(MessageItem message, PlanData planData, VisitData visitData)
 {
     MessageStateInfo info = new MessageStateInfo(message);
     DispatchedMessageInfo info3 = new DispatchedMessageInfo();
     info3.ID = info.ID;
     info3.Name = info.Name;
     info3.MessageType = info.Type;
     info3.Date = info.StartDate;
     info3.State = info.Status;
     DispatchedMessageInfo info2 = info3;
     if (planData != null)
     {
         DateTime time;
         DateTime time2;
         PlanStatistics planStatistics = AnalyticsFactory.Instance.GetPlanStatistics(planData);
         AnalyticsHelper.TryGetCampaignDates(message.CampaignId.ToGuid(), out time, out time2);
         info2.Sent = (time != time2) ? planStatistics.GetTotal() : 0;
         info2.OpenRate = planStatistics.GetOpenRate();
         info2.ClickRate = planStatistics.GetClickRate();
     }
     if (visitData != null)
     {
         info2.ValuePerVisit = visitData.ValuePerVisit;
         info2.Value = visitData.Value;
     }
     return info2;
 }
        private DispatchedMessageInfo GetDispatchedInfo(MessageItem message, VisitData visitData, PlanData planData)
        {
            MessageStateInfo      messageStateInfo = this.GetMessageStateInfo(message);
            DispatchedMessageInfo info3            = new DispatchedMessageInfo();

            info3.ID             = messageStateInfo.ID;
            info3.Name           = messageStateInfo.Name;
            info3.State          = messageStateInfo.Status;
            info3.Date           = messageStateInfo.Updated;
            info3.Sent           = messageStateInfo.Sent;
            info3.NumSubscribers = messageStateInfo.NumSubscribers;
            info3.MessageState   = messageStateInfo.MessageState;
            DispatchedMessageInfo info2 = info3;
            int emailCount = -1;

            if (planData != null)
            {
                PlanStatistics planStatistics = AnalyticsFactory.Instance.GetPlanStatistics(planData);
                info2.OpenRate  = planStatistics.GetOpenRate();
                info2.ClickRate = planStatistics.GetClickRate();
                emailCount      = planStatistics.GetActual();
            }
            if (visitData != null)
            {
                info2.ValuePerVisit = visitData.ValuePerVisit;
                if (emailCount > -1)
                {
                    VisitStatistics visitStatistics = AnalyticsFactory.Instance.GetVisitStatistics(visitData);
                    info2.ValuePerEmail  = visitStatistics.GetValuePerEmail(emailCount);
                    info2.VisitsPerEmail = visitStatistics.GetVisitPerEmail(emailCount);
                }
            }
            return(info2);
        }
Exemplo n.º 7
0
        public JsonResult CDSSdiagnosis()
        {
            string strResult = null;

            try{
                string    jsonStr = Request.Params["postjson"];
                VisitData obj     = JsonConvert.DeserializeObject <VisitData>(jsonStr);//jsonStr.FromJsonTo<VisitData>();
                //HeadachePlace h1=new HeadachePlace();
                //h1.Position = "左侧为主";
                //obj.PHeadacheOverview.HeadachePlace.Add(h1);//629演示
                HeadacheDiagnosis HDiagnosis = new HeadacheDiagnosis();
                strResult = HDiagnosis.GetDiagnosis(obj);
            }
            catch (Exception e)
            {
                return(this.Json(new { OK = false, Message = e.Message + "推理出错" }));
            }
            //strResult = "123";
            if (!strResult.Contains("必填项"))
            {
                if (strResult.Length < 20)
                {
                    strResult = "\n" + "                          " + strResult;
                }
                return(this.Json(new { OK = true, Message = strResult }));
            }
            else
            {
                return(this.Json(new { OK = false, Message = strResult }));
            }
        }
Exemplo n.º 8
0
        void VisitRelation(VisitData data)
        {
            var left  = data.Children[0].Expression;
            var right = data.Children[2].Expression;

            switch (data.Children[1].Node.Symbol.Name)
            {
            case "<":
                data.Expression = ToCBool(Expression.LessThan(left, right));
                return;

            case ">":
                data.Expression = ToCBool(Expression.GreaterThan(left, right));
                return;

            case "<=":
                data.Expression = ToCBool(Expression.LessThanOrEqual(left, right));
                return;

            case ">=":
                data.Expression = ToCBool(Expression.GreaterThanOrEqual(left, right));
                return;

            default:
                throw new InvalidOperationException();
            }
        }
Exemplo n.º 9
0
        private static VisitData Pages(this VisitData data, DateTime start, TimeSpan duration, int count,
                                       Func <PageData, IEnumerable <PageEventData> > events = null)
        {
            data.Pages = new List <PageData>();
            var date = start;

            data.StartDateTime = date;
            for (var i = 1; i <= count; i++)
            {
                var page = new PageData
                {
                    DateTime       = date,
                    VisitPageIndex = i,
                    Item           = new ItemData {
                        Id = i.ToGuid()
                    },
                    Duration = (int)duration.TotalSeconds
                };
                if (events != null)
                {
                    page.PageEvents = events(page).ToList();
                }

                data.Pages.Add(page);

                date = date.Add(duration);
            }
            data.EndDateTime = date;

            return(data);
        }
Exemplo n.º 10
0
        private static VisitData UpdateSums(this VisitData visitData)
        {
            visitData.Pages = visitData.Pages ?? new List <PageData>();

            visitData.VisitPageCount = visitData.Pages.Count;

            for (var i = 0; i < visitData.Pages.Count; i++)
            {
                if (i == 0)
                {
                    if (visitData.StartDateTime == default(DateTime))
                    {
                        visitData.StartDateTime = visitData.Pages[i].DateTime;
                    }
                }
                else
                {
                    visitData.Pages[i - 1].Duration = (int)(visitData.Pages[i].DateTime - visitData.Pages[i - 1].DateTime).TotalSeconds;
                }

                visitData.Pages[i].VisitPageIndex = i + 1;
                visitData.Pages[i].PageEvents     = visitData.Pages[i].PageEvents ?? new List <PageEventData>();
            }

            if (visitData.Pages.Count > 0 && visitData.EndDateTime == default(DateTime))
            {
                visitData.EndDateTime = visitData.Pages.Last().DateTime.AddSeconds(visitData.Pages.Last().Duration);
            }

            visitData.Value = visitData.Pages.Sum(pd => pd.PageEvents == null ? 0 : pd.PageEvents.Sum(pe => pe.Value));

            return(visitData);
        }
Exemplo n.º 11
0
        public static IEnumerable <IVisitAggregationContext> Countries(int count, int countries, DateTime?start = null, TimeSpan?offset = null, int regionsPerCountry = 3)
        {
            start  = start ?? new DateTime(2000, 1, 1);
            offset = offset ?? TimeSpan.Zero;

            var baseData = new VisitData();

            var date = start.Value;

            return(Enumerable.Range(1, count).Select(i =>
            {
                var countryName = "C" + ((i / regionsPerCountry) % countries);
                var regionName = countryName + "_R" + i % regionsPerCountry;
                var vd = baseData.Clone().SetGeoData(countryName, regionName)
                         .Pages(date, TimeSpan.FromSeconds(3), 3, p =>
                                new[] { new PageEventData {
                                            PageEventDefinitionId = p.VisitPageIndex.ToGuid(), Value = p.VisitPageIndex * p.VisitPageIndex
                                        } });

                date = date.Add(offset.Value);

                vd.InteractionId = i.ToGuid();
                return vd.AsContext();
            }));
        }
Exemplo n.º 12
0
        //Get Visits by Data Filter
        public void GetAllVisitsbyDate(DateTime visitDate)
        {
            VisitData visitData = new VisitData();

            //Read from Json File, Get Visits Data
            var    assembly = IntrospectionExtensions.GetTypeInfo(typeof(ApiService)).Assembly;
            Stream stream   = assembly.GetManifestResourceStream("XFTest.Database.VisitsData.json");

            using (var reader = new System.IO.StreamReader(stream))
            {
                var jsonData = reader.ReadToEnd();
                visitData = JsonConvert.DeserializeObject <VisitData>(jsonData);
                //Filter Visits by Date Filter
                visitData.Data = new ObservableCollection <Visits>(visitData.Data.Where(x => x.StartTimeUtc.Date >= visitDate.Date && x.EndTimeUtc.Date <= visitDate.Date).ToList() as List <Visits>);

                //Set PrevHouseOwnerLatitude, PrevHouseOwnerLongitude for each Visit, Used for Distance Calculation logic from Previous Visit
                for (int i = 0; i < visitData.Data.Count; i++)
                {
                    if (i > 0)
                    {
                        visitData.Data[i].PrevHouseOwnerLatitude  = visitData.Data[i - 1].HouseOwnerLatitude;
                        visitData.Data[i].PrevHouseOwnerLongitude = visitData.Data[i - 1].HouseOwnerLongitude;
                    }
                }

                //Set Filtered Visit List
                items = visitData.Data;
            }
        }
Exemplo n.º 13
0
        void VisitLogicalAnd(VisitData data)
        {
            var left  = FromCBool(data.Children[0].Expression);
            var right = FromCBool(data.Children[1].Expression);

            data.Expression = ToCBool(Expression.AndAlso(left, right));
        }
Exemplo n.º 14
0
        public JsonResult Save()
        {
            string userName = HttpContext.Request.Cookies["username"].Value.ToString();

            this.ViewBag.UserName = userName;
            string jsonStr = Request.Params["postjson"];
            string VisitID = Request.Params["VisitId"];
            string PatID   = this.TempData["PatID"].ToString();
            bool   res;

            try
            {
                VisitData obj = JsonConvert.DeserializeObject <VisitData>(jsonStr);//反序列化成指定对象
                //  res=vr.SaveRecord(PatID, obj);
                res = vr.UpdateRecord(PatID, VisitID, obj);
            }
            catch (Exception e)
            {
                return(this.Json(new { OK = false, Message = "保存失败" }));
            }
            //加一个判断,返回的是true or false,现在是return false还是保存成功的
            if (res == false)
            {
                return(this.Json(new { OK = false, Message = "保存失败" }));
            }
            return(this.Json(new { OK = true, Message = "保存成功" }));
        }
Exemplo n.º 15
0
        void VisitLogicalOr(VisitData data)
        {
            var left  = FromCBool(data.Children[0].Expression);
            var right = FromCBool(data.Children[2].Expression);

            data.Expression = ToCBool(Expression.OrElse(left, right));
        }
 protected virtual List <PageEventData> GetPageEvents(VisitData visit)
 {
     return(new List <PageEventData>(
                visit.Pages
                .Where(page => page.PageEvents != null)
                .SelectMany(page => page.PageEvents)
                .Where(pageEvent => MediaFrameworkContext.IsMediaEvent(pageEvent.PageEventDefinitionId))));
 }
Exemplo n.º 17
0
    protected void Page_Load(object sender, EventArgs e)
    {
        VisitData bll = new VisitData();

        bll.DeleteUserFile(Request.QueryString["visitDataCode"], Request.QueryString["fileNumber"], Request.QueryString["fileName"]);

        Response.Redirect("inputVisit.aspx?visitDataCode=" + Request.QueryString["visitDataCode"] + "&mode=modify");
    }
Exemplo n.º 18
0
        void VisitCondition(VisitData data)
        {
            var test    = FromCBool(data.Children[0].Expression);
            var ifTrue  = data.Children[1].Expression;
            var ifFalse = data.Children[2].Expression;

            data.Expression = Expression.Condition(test, ifTrue, ifFalse);
        }
Exemplo n.º 19
0
        protected override SitecoreResponseInfo Execute(Request request, Func <string, WebClient, string> requestAction = null)
        {
            var response = base.Execute(request, requestAction);

            if (response.VisitData != null)
            {
                this.VisitData = response.VisitData;
            }
            return(response);
        }
Exemplo n.º 20
0
        protected override SitecoreResponseInfo Execute(Request request)
        {
            var response = base.Execute(request);

            if (response.VisitData != null)
            {
                this.VisitData = response.VisitData;
            }
            return(response);
        }
Exemplo n.º 21
0
        public void UpdateVisit(int id)
        {
            VisitorData visitorData = new VisitorData();

            visitorData.UpdatePresence(id, false);

            VisitData data = new VisitData();

            data.UpdateVisit(id);
        }
Exemplo n.º 22
0
        public void CreateVisit(VisitModel visitModel)
        {
            VisitorData visitorData = new VisitorData();

            visitorData.UpdatePresence(visitModel.VisitorId, true);

            VisitData data = new VisitData();

            data.AddVisit(visitModel);
        }
Exemplo n.º 23
0
 // GET: Visit
 public ActionResult Delete(VisitData model)
 {
     if (model != null)
     {
         var visit = entities.VisitDatas.First(x => x.Id == model.Id);
         visit.Removed = true;
         entities.SaveChanges();
         return(RedirectToAction("VisitList", "Client", new { id = model.ClientId }));
     }
     return(HttpNotFound("Sorry but this page is not exists"));
 }
Exemplo n.º 24
0
        public Func <int, int> Compile()
        {
            _param = Expression.Parameter(typeof(int), "n");

            var stack   = new Stack <VisitData>();
            var visited = new Stack <VisitData>();

            var root = VisitData.From(_syntaxTree);

            stack.Push(root);

            while (stack.Count > 0)
            {
                var data = stack.Peek();

                if (visited.Count == 0 || !ReferenceEquals(visited.Peek(), data))
                {
                    var childNodes = data.Node.Children;
                    var n          = childNodes.Count;
                    if (n > 0)
                    {
                        data.Children = new VisitData[n];

                        visited.Push(data);
                        stack.Push(data.Children[--n] = VisitData.From(childNodes[n]));

                        while (n > 0)
                        {
                            stack.Push(data.Children[--n] = VisitData.From(childNodes[n]));
                        }

                        continue;
                    }
                }
                else
                {
                    visited.Pop();
                }

                stack.Pop();
                Visit(data);
            }

            if (root.Expression == null)
            {
                return(null);
            }

            var lambda = Expression.Lambda <Func <int, int> >(root.Expression, _param);

            return(lambda.Compile());
        }
Exemplo n.º 25
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // 로그인 체크  check login
        EmployeeInfo loginEmployee = new EmployeeInfo();

        loginEmployee = (EmployeeInfo)Session["loginMember"];
        if (loginEmployee == null)
        {
            Response.Redirect("~/login.aspx", true);
        }
        employeeCode = loginEmployee.Upnid;
        VisitData   bllVisitData   = new VisitData();
        VisitorData bllVisitorData = new VisitorData();

        VisitDataInfo   visitDataInfo   = new VisitDataInfo();
        VisitorDataInfo visitorDataInfo = new VisitorDataInfo();

        visitDataInfo = bllVisitData.selectVisitData(Request.QueryString["visitDataCode"]);

        // 내방객 정보 삭제  xóa thông tin khách đến thăm
        List <VisitorDataInfo> list = bllVisitorData.selectVisitorDataList(Request.QueryString["visitDataCode"]);

        for (int i = 0; i < list.Count; i++)
        {
            VisitorDataInfo subVisitor = (VisitorDataInfo)list[i];
            int             resultDel  = bllVisitorData.deleteVisitorData(subVisitor);
        }

        // 첨부 파일 삭제 xóa file đính kèm
        if (!String.IsNullOrEmpty(visitDataInfo.UserFile1))
        {
            bllVisitData.DeleteUserFile(Request.QueryString["visitDataCode"], "1", bllVisitData.GetFileName(visitDataInfo.UserFile1));
        }

        if (!String.IsNullOrEmpty(visitDataInfo.UserFile1))
        {
            bllVisitData.DeleteUserFile(Request.QueryString["visitDataCode"], "2", bllVisitData.GetFileName(visitDataInfo.UserFile3));
        }

        if (!String.IsNullOrEmpty(visitDataInfo.UserFile1))
        {
            bllVisitData.DeleteUserFile(Request.QueryString["visitDataCode"], "3", bllVisitData.GetFileName(visitDataInfo.UserFile3));
        }

        // 내방 정보 삭제 xóa thông tin đến thăm
        int result = bllVisitData.deleteVisitData(visitDataInfo);

        // 결재코드 code phê duyệt
        doc_code = visitDataInfo.ElecApproveCode;

        Response.Redirect("listVisit.aspx", true);
    }
Exemplo n.º 26
0
        public void AddVisitor(VisitorListModel visitorModel)
        {
            VisitorData data      = new VisitorData();
            VisitData   visitData = new VisitData();

            var        visitorId = data.AddVisitor(visitorModel);
            VisitModel visit     = new VisitModel
            {
                VisitorId = visitorId
            };

            visitData.AddVisit(visit);
        }
Exemplo n.º 27
0
    protected void Page_Load(object sender, EventArgs e)
    {
        VisitData     bll           = new VisitData();
        VisitDataInfo visitDataInfo = bll.selectVisitData(Request.QueryString["visitDataCode"]);

        VisitorData     bllVisitorData  = new VisitorData();
        VisitorDataInfo visitorDataInfo = bllVisitorData.selectVisitorData(Request.QueryString["visitorDataCode"]);

        lblRegDate.Text     = visitDataInfo.RegDate.ToString();
        lblApproveTime.Text = visitDataInfo.ApproveTime.ToString();
        lblINTime.Text      = visitorDataInfo.InTime;
        lblOutTime.Text     = visitorDataInfo.OutTime;
    }
Exemplo n.º 28
0
        public JsonResult Insert(SimulatePatientViewModel SimulatePatientViewModel)
        {
            var patients = JsonConvert.DeserializeObject <List <Patient> >(HttpContext.Session.GetString("patientList"));

            new PatientService().InsertRecords(patients);
            var treatmentReadings = new TreatmentReadingService().GetTreatmentRecords();
            var visitData         = new VisitData();

            visitData.TreatmentReadings        = treatmentReadings;
            visitData.PatientDtoList           = new PatientService().GetUniquePatients(treatmentReadings);
            SimulatePatientViewModel.VisitData = visitData;
            SimulatePatientViewModel.Status    = "Success";
            return(Json(SimulatePatientViewModel));
        }
Exemplo n.º 29
0
 public void LocalVisit(visitRoutineArgs f, VisitData args, HexCoords origin, int distance)
 {
     if (!visited && (this.coords - origin).radius() <= distance)
     {
         visited = true;
         f(this, args);
         foreach (Node node in neighbors)
         {
             if (node != null)
             {
                 node.LocalVisit(f, args, origin, distance);
             }
         }
     }
 }
Exemplo n.º 30
0
 public void Visit(visitRoutineArgs f, VisitData args)
 {
     if (!visited)
     {
         visited = true;
         f(this, args);
         foreach (Node node in neighbors)
         {
             if (node != null)
             {
                 node.Visit(f, args);
             }
         }
     }
 }
Exemplo n.º 31
0
 protected void Button1_Click(object sender, EventArgs e)
 {
     if (IsValid)
     {
         VisitData data = new VisitData();
         data.FirstName     = tbFName.Text;
         data.LastName      = tbLName.Text;
         data.Email         = tbEmail.Text;
         data.PESEL         = tbPESEL.Text;
         data.CardNumber    = tbVIPNumber.Text;
         data.DoctorId      = Convert.ToInt32(ddDoctor.SelectedValue);
         data.DateVisit     = calVisitDate.SelectedDate;
         Session["RegForm"] = data;
         Response.Redirect("~/RegisterVisit2");
     }
 }
        private static void ProcessDimensionSegments(AggregationPipelineArgs args, VisitData visit, Hash32 sitesHash, InteractionData interactionData)
        {
            foreach(Dimension dimension in Dimensions)
            {
                IEnumerable<Segment> segments = from segment in segmentDefinitionService.GetSegmentDefinitions()
                                                where segment.DimensionId == dimension.DimensionID
                                                select new Segment(segment, dimension);

                foreach(Segment segment in segments)
                {
                    ISegmentKeyProvider keyProvider = null;
                    
                    switch(segment.Dimension.DimensionType)
                    {
                        case DimensionType.Browser:
                            keyProvider = interactionData.Browser;
                            break;
                        case DimensionType.OS:
                            keyProvider = interactionData.OS;
                            break;
                        case DimensionType.Screen:
                            keyProvider = interactionData.Screen;
                            break;
                        case DimensionType.UserAgent:
                            keyProvider = interactionData.UserAgent;
                            break;
                    }

                    string segmentKeyValue = keyProvider.GetSegmentKeyValue();
                    Hash64 segmentDimensionKeyId = args.GetDimension<DimensionKeys>().Add(segmentKeyValue);
                    
                    Hash64 segmentRecordId = args.GetDimension<SegmentRecords>().Add(segment.Definition.Id, visit.StartDateTime, sitesHash, segmentDimensionKeyId);

                    SegmentMetrics segmentMetricsFact = args.GetFact<SegmentMetrics>();
                    byte contactTransitionType = 1;
                    if (visit.ContactVisitIndex > 1) contactTransitionType = 2;

                    SegmentMetrics.Key segmentMetricsKey = new SegmentMetrics.Key
                    {
                        ContactTransitionType = contactTransitionType,
                        SegmentRecordId = segmentRecordId
                    };

                    List<PageEventData> evts = (from page in visit.Pages select page.PageEvents).FirstOrDefault();

                    SegmentMetricsValue segmentMetricsValue = new SegmentMetricsValue
                    {
                        //Same exact code from DimensionBase.CalculateCommonMetrics
                        Visits = 1,
                        Value = visit.Value,
                        Bounces = visit.Pages.Count == 1 ? 1 : 0,
                        Conversions = evts.Count<PageEventData>(e => e.IsGoal),
                        TimeOnSite = visit.Pages.Sum<PageData>((Func<PageData, int>)(page => DimensionBase.ConvertDuration(page.Duration))),
                        Pageviews = visit.Pages.Count,
                        Count = visit.VisitPageCount
                    };

                    segmentMetricsFact.Emit(segmentMetricsKey, segmentMetricsValue);
                }
            }           
        }
            public InteractionData(AggregationPipelineArgs args, VisitData visit)
            {
                Browsers browserDimension = args.GetDimension<Browsers>();
                OS osDimension = args.GetDimension<OS>();
                Screens screenDimension = args.GetDimension<Screens>();
                UserAgents userAgentDimension = args.GetDimension<UserAgents>();

                Browser = browserDimension.Add(visit.Browser.BrowserMajorName, visit.Browser.BrowserMinorName, visit.Browser.BrowserVersion);                
                OS = osDimension.Add(visit.OperatingSystem.Name);
                Screen = screenDimension.Add(visit.Screen.ScreenHeight, visit.Screen.ScreenWidth);
                UserAgent = userAgentDimension.Add(visit.UserAgent);
            }
 private DispatchedMessageInfo GetDispatchedInfo(MessageItem message, VisitData visitData, PlanData planData)
 {
     MessageStateInfo messageStateInfo = this.GetMessageStateInfo(message);
     DispatchedMessageInfo info3 = new DispatchedMessageInfo();
     info3.ID = messageStateInfo.ID;
     info3.Name = messageStateInfo.Name;
     info3.State = messageStateInfo.Status;
     info3.Date = messageStateInfo.Updated;
     info3.Sent = messageStateInfo.Sent;
     info3.NumSubscribers = messageStateInfo.NumSubscribers;
     info3.MessageState = messageStateInfo.MessageState;
     DispatchedMessageInfo info2 = info3;
     int emailCount = -1;
     if (planData != null)
     {
         PlanStatistics planStatistics = AnalyticsFactory.Instance.GetPlanStatistics(planData);
         info2.OpenRate = planStatistics.GetOpenRate();
         info2.ClickRate = planStatistics.GetClickRate();
         emailCount = planStatistics.GetActual();
     }
     if (visitData != null)
     {
         info2.ValuePerVisit = visitData.ValuePerVisit;
         if (emailCount > -1)
         {
             VisitStatistics visitStatistics = AnalyticsFactory.Instance.GetVisitStatistics(visitData);
             info2.ValuePerEmail = visitStatistics.GetValuePerEmail(emailCount);
             info2.VisitsPerEmail = visitStatistics.GetVisitPerEmail(emailCount);
         }
     }
     return info2;
 }
        private void talkVisit(VisitData visit)
        {
            if (visit == null) {
                return;
            }
            StringBuilder sb = new StringBuilder();

            sb.Append("visit id: ");
            sb.Append(visit.Id);
            sb.Append(". ");

            sb.Append("cause: ");
            sb.Append(visit.Cause);
            sb.Append(". ");

            sb.Append("localis: ");
            sb.Append(visit.Localis);
            sb.Append(". ");

            sb.Append("diagnosis: ");
            sb.Append(visit.ExtraDiagnosis);
            sb.Append(". ");

            sb.Append("prozedure: ");
            sb.Append(visit.Procedure);
            sb.Append(". ");

            sb.Append("therapy: ");
            sb.Append(visit.ExtraTherapy);
            sb.Append(". ");

            sb.Append("date: ");
            sb.Append(visit.VisitDate);
            sb.Append(". ");

            talk(sb.ToString());
        }
 private TrickleInfo GetTrickleInfo(MessageItem message, VisitData visitData, PlanData planData)
 {
     MessageStateInfo messageStateInfo = this.GetMessageStateInfo(message);
     TrickleInfo info3 = new TrickleInfo();
     info3.ID = messageStateInfo.ID;
     info3.Name = messageStateInfo.Name;
     info3.HasAbn = messageStateInfo.HasAbn;
     TrickleInfo info2 = info3;
     int emailCount = -1;
     if (planData != null)
     {
         PlanStatistics planStatistics = this.analyticsFactory.GetPlanStatistics(planData);
         info2.OpenRate = planStatistics.GetOpenRate();
         info2.Recipients = planStatistics.GetTotal();
         emailCount = planStatistics.GetActual();
     }
     if (visitData != null)
     {
         info2.ValuePerVisit = visitData.ValuePerVisit;
         if (emailCount > -1)
         {
             info2.ValuePerEmail = this.analyticsFactory.GetVisitStatistics(visitData).GetValuePerEmail(emailCount);
         }
     }
     return info2;
 }