浏览代码

modifications made for duplicate data in checkout

Narmada 2 年前
父节点
当前提交
ceac275279
共有 1 个文件被更改,包括 45 次插入51 次删除
  1. 45
    51
      CRM.Visitors/ActionProviders/FeedBackPostActionProvider.cs

+ 45
- 51
CRM.Visitors/ActionProviders/FeedBackPostActionProvider.cs 查看文件

33
             {
33
             {
34
                 return "FeedBack";
34
                 return "FeedBack";
35
             }
35
             }
36
-        }/// <summary>
37
-        /// test 123
38
-        /// </summary>
36
+        }
39
         public string Description
37
         public string Description
40
         {
38
         {
41
             get
39
             get
74
                 var defaultPKValue = providerObject.DefaultPKValue;
72
                 var defaultPKValue = providerObject.DefaultPKValue;
75
                 var stageManager = Unibase.Dependency.DependencyConfig.Resolve<IStageManager>();
73
                 var stageManager = Unibase.Dependency.DependencyConfig.Resolve<IStageManager>();
76
                 var visitorManager = Unibase.Dependency.DependencyConfig.Resolve<Bizgaze.CRM.Visitors.Managers.IVisitorManager>();
74
                 var visitorManager = Unibase.Dependency.DependencyConfig.Resolve<Bizgaze.CRM.Visitors.Managers.IVisitorManager>();
77
-                var dictObj = obj as IDictionary<string, dynamic>;                
75
+                var dictObj = obj as IDictionary<string, dynamic>;
78
                 var connection = GetConnection(request);
76
                 var connection = GetConnection(request);
79
                 ExpandoObject obj1 = dictObj["RequestObj"];
77
                 ExpandoObject obj1 = dictObj["RequestObj"];
80
                 var req = obj1 as IDictionary<string, object>;
78
                 var req = obj1 as IDictionary<string, object>;
81
                 var code = Convert.ChangeType(req["uniqueid"].ToString(), typeof(object)).ToString();
79
                 var code = Convert.ChangeType(req["uniqueid"].ToString(), typeof(object)).ToString();
82
                 var feedBackJson = Convert.ChangeType(req["feedbackrating"].ToString(), typeof(object)).ToString();
80
                 var feedBackJson = Convert.ChangeType(req["feedbackrating"].ToString(), typeof(object)).ToString();
83
-                var feedBackObj =  JsonSerializer.Deserialize<Request.VisitorRequest>(feedBackJson);
81
+                var feedBackObj = JsonSerializer.Deserialize<Request.VisitorRequest>(feedBackJson);
82
+                List<Unibase.Platform.Forms.Requests.DocParameter> docParameters = dictObj["DocParameters"];
83
+                var checkinfo = docParameters.Find(x => x.DocType == "bizgazecrm_visitorcheckout");
84
+                var visitorcheckoutId= checkinfo.Parameters["visitorcheckoutid"].ToString();
84
                 var comments = feedBackObj.Comments;
85
                 var comments = feedBackObj.Comments;
85
                 var rating = feedBackObj.Rating;
86
                 var rating = feedBackObj.Rating;
86
                 var visitorInfo = await visitorManager.GetpreVisitorsAsync(srequest, code);
87
                 var visitorInfo = await visitorManager.GetpreVisitorsAsync(srequest, code);
87
-                if (visitorInfo != null)
88
+
89
+                if (visitorInfo.Result != null)
88
                 {
90
                 {
89
                     var visitorId = Convert.ToInt64(visitorInfo.Result.VisitorId);                    
91
                     var visitorId = Convert.ToInt64(visitorInfo.Result.VisitorId);                    
90
-                    var sql = new Unibase.Data.Sql.Select("bizgazecrm_visitors").Columns("bizgazecrm_visitors.installedappid", "bizgazecrm_visitors.fullname", "bizgazecrm_visitors.mobilenumber", "bizgazecrm_visitors.emailid", "bizgazecrm_visitors.photourl", "unibase_stagestatus.stageStatusName", "unibase_stagestatus.RefStatusId").InnerJoin("unibase_stages", Exp.EqColumns("unibase_stages.stageid", "bizgazecrm_visitors.stageid")).InnerJoin("unibase_stagestatus", Exp.EqColumns("unibase_stagestatus.stagestatusid", "unibase_stages.stagestatusid")).Where("bizgazecrm_visitors.visitorid", visitorId);
91
-                    List<Parameter> param = new List<Parameter>();
92
-                    param.Add(new Parameter("@bizgazecrm_visitors.visitorid", visitorId));
93
-                    var dt = await GetDataTableAsync(srequest, sql, param);                    
94
-                    var stageStatusName = "";                   
95
-                    if (dt.Rows.Count > 0)
96
-                    {                        
97
-                      stageStatusName = "CheckOut";
98
-                        for (int i = 0; i < dt.Rows.Count; i++)
99
-                        {                           
100
-                            var installedAppId = Convert.ToInt64(dt.Rows[i]["installedAppId"]);                            
101
-                            var stage =  await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName);
102
-                            var NewStageId = stage.Result.StageId;
103
-                            var UpdateStage = new Update("bizgazecrm_visitors").Value("stageid", NewStageId).Where(Exp.Eq("visitorId", visitorId));
104
-                             await _repository.ExecuteAsync(request, UpdateStage);
105
-                        }
106
-                        var options = new EntityOptions()
107
-                        {
108
-                            IsIdentity = true,
109
-                            IsNewEntity = true,
110
-                            TableName = "bizgazecrm_visitorcheckout",
111
-                            PkColumn = "visitorcheckoutid",
112
-                            IsExcludeFromAudit = false,
113
-                            Id = 0,
114
-                        };
115
-                        dynamic visitor = new Dictionary<string, object>();
116
-                        visitor.Add("createdby", srequest.Identity.UserId);
117
-                        visitor.Add("createddate", DateTime.Now);
118
-                        visitor.Add("checkoutdate", DateTime.Now);
119
-                        visitor.Add("comments", comments);
120
-                        visitor.Add("rating", Convert.ToInt32(rating));
121
-                        visitor.Add("versionguid", Guid.NewGuid());
122
-                        visitor.Add("uniqueid", code);                       
123
-                        visitor.Add("statusid", (int)RowStatus.Active);
124
-                        visitor.Add("installedappid", visitorInfo.Result.Installedappid);
125
-                        visitor.Add("visitorid", visitorInfo.Result.VisitorId);
126
-                        var responses = await _repository.SaveAsync(request, options, visitor);
127
-                        if (responses.Status == ResponseStatus.Error)
128
-                        {
129
-                            if (requestTrans.StartedLocal) await request.RollbackTransactionAsync();
130
-                            return ActionResponse<FormActionResponse>.CreateErrorResponse("1", "Visitor Check Out Data Not Saved");
131
-                        }
132
-                    }                    
92
+                    var stageStatusName = "CheckOut";
93
+                    var installedAppId = Convert.ToInt64(visitorInfo.Result.Installedappid);
94
+                    var stage = await stageManager.GetStageByStageStatusAsync(srequest, installedAppId, stageStatusName);
95
+                    var NewStageId = stage.Result.StageId;
96
+                    var UpdateStage = new Update("bizgazecrm_visitors").Value("stageid", NewStageId).Where(Exp.Eq("visitorId", visitorId));
97
+                    await _repository.ExecuteAsync(request, UpdateStage);
98
+                    var vistoroptions = new EntityOptions()
99
+                    {
100
+                        IsIdentity = false,
101
+                        IsNewEntity = false,
102
+                        TableName = "bizgazecrm_visitorcheckout",
103
+                        PkColumn = "visitorcheckoutid",
104
+                        IsExcludeFromAudit = false,
105
+                        Id =Convert.ToInt64(visitorcheckoutId),
106
+                    };
107
+                    dynamic visitor = new Dictionary<string, object>();                    
108
+                    visitor.Add("visitorcheckoutid", Convert.ToInt64(visitorcheckoutId));
109
+                    visitor.Add("createdby", srequest.Identity.UserId);
110
+                    visitor.Add("createddate", DateTime.Now);
111
+                    visitor.Add("checkoutdate", DateTime.Now);
112
+                    visitor.Add("checkindate", visitorInfo.Result.CheckInDate);
113
+                    visitor.Add("comments", comments);
114
+                    visitor.Add("rating", Convert.ToInt32(rating));
115
+                    visitor.Add("versionguid", Guid.NewGuid());
116
+                    visitor.Add("uniqueid", code);
117
+                    visitor.Add("statusid", (int)RowStatus.Active);
118
+                    visitor.Add("installedappid", visitorInfo.Result.Installedappid);
119
+                    visitor.Add("visitorid", visitorId);
120
+                    var responses = await _repository.SaveAsync(request, vistoroptions, visitor);
121
+                    if (responses.Status == ResponseStatus.Error)
122
+                    {
123
+                        if (requestTrans.StartedLocal) await request.RollbackTransactionAsync();
124
+                        return ActionResponse<FormActionResponse>.CreateErrorResponse("1", "Visitor Check Out Data Not Saved");
125
+                    }                   
126
+
133
                 }
127
                 }
134
                 var returnresponse = new FormActionResponse();
128
                 var returnresponse = new FormActionResponse();
135
-                returnresponse.Obj = dictObj as ExpandoObject;
136
-                returnresponse.PkValue = defaultPKValue;
129
+                returnresponse.Obj = null;
130
+                returnresponse.PkValue = 0;
137
                 return ActionResponse<FormActionResponse>.CreateSuccessResponse("success", returnresponse);
131
                 return ActionResponse<FormActionResponse>.CreateSuccessResponse("success", returnresponse);
138
             }
132
             }
139
         }
133
         }

正在加载...
取消
保存