如何在气球上显示审计跟踪

时间:2016-06-14 14:39:21

标签: c# asp.net-mvc

我创建了审计跟踪,它运行正常。您可以看到所有更改甚至是编辑的表的名称。现在我想在弹出窗口中显示更改。一旦用户编辑了一些字段,我想显示fieldname,oldvalue,newvalue,username和date.Only一旦你点击了气球。

我不知道我该怎么做。我已经实现了气球,您可以点击并查看更改,但它不起作用。

如何在气球上显示所有更改

我已经创建了Ballon:如果有编辑,我可以按照我想要的方式自定义

<div class="small-chat-box fadeInRight animated">
    <div class="left">
        <div class="author-name">
            Claim Edit <small class="chat-date">
                <br>09-06-2016 12:00 pm
            </small>
        </div>
        <div class="chat-message active">
            Username: JJ
            <br>fieldname: Surname
            <br>oldvalue: small
            <br>newvalue big
            <br>date: @DateTime.Now
        </div>
    </div>
 </div>

我的审核方法工作正常

 public static List<ClaimAudit> GetClaimLog(SidDbContext db, int claimId)
    {
        --------------------
             foreach (var entry in changeTrack)
        {
            if (entry.Entity != null)
            {
                string entityName = string.Empty;
                string state = string.Empty;
                switch (entry.State)
                {
                    case EntityState.Modified:
                        entityName = ObjectContext.GetObjectType(entry.Entity.GetType()).Name;
                        state = entry.State.ToString();
                        foreach (string prop in entry.OriginalValues.PropertyNames)
                        {
                            object currentValue = entry.CurrentValues[prop];
                            object originalValue = entry.OriginalValues[prop];
                            if (!currentValue.Equals(originalValue))
                            {
                                ClaimLogs.Add(new ClaimAudit
                                {
                                    tableName = entityName,
                                    state = state,
                                    fieldName = prop,
                                    oldValue = Convert.ToString(originalValue),
                                    newValue = Convert.ToString(currentValue),
                                    userId = "JJ",
                                    UpdateDate = DateTime.Now,
                                    CommentsId = 1,
                                    ClaimId = claimId

                                });
                            }
                        }
                        break;
                }
            }
        }

在保存

上调用我的更新功能
public async Task<bool> UpdateClaimVehicle(ClaimVehicle vehicleModel)
    {
        List<ClaimAudit> ClaimLogs = new List<ClaimAudit>();
        using (IBaseDataRepository<ClaimVehicle> bs = new BaseRepository<ClaimVehicle>())
        {

            using (SidDbContext db = new SidDbContext())
            {
                if (vehicleModel != null)
                {
                    var oldClaim = db.ClaimVehicles.FirstOrDefault(x => x.ClaimId == vehicleModel.ClaimId);

                    oldClaim.VehicleMakeModelId = vehicleModel.VehicleMakeModelId;
                    oldClaim.VehicleRegistrationNumber = vehicleModel.VehicleRegistrationNumber;
                    oldClaim.VehicleYearModel = vehicleModel.VehicleYearModel;
                    oldClaim.VinNumber = vehicleModel.VinNumber;

                    ClaimLogs = GetClaimLog(db, oldClaim.ClaimId);
                    db.claimAuditLog.AddRange(ClaimLogs);
                    db.SaveChanges();  
                }
                return true;
            }
        }
    }

这里我试图首先在视图上显示它,但它说模型不存在

      @model Business.Models.ClaimDetailsModel
       @foreach (var item in Model) //error here
        {
        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.ClaimId)
            </td>
        </tr>
        }

0 个答案:

没有答案