Beispiel #1
0
        public static int Add(AuditContext db, AuditModel model)
        {
            SAIS.Data.Audit audit = CreateAudit(model);

            // Понякога броят на детайлите е много голям и, за да се добавят бързо, трябва да се изключи AutoDetectChanges.
            //bool originalAutoDetectSetting = db.Configuration.AutoDetectChangesEnabled;
            //db.Configuration.AutoDetectChangesEnabled = false;
            try
            {
                db.Audits.Add(audit);
                foreach (AuditDetail detail in audit.AuditDetails)
                {
                    detail.Audit = audit;
                    db.AuditDetails.Add(detail);
                }
            }
            finally
            {
                //db.Configuration.AutoDetectChangesEnabled = originalAutoDetectSetting;
            }

            db.SaveChangesWithValidationExplained();
            int id = audit.Id;

            model.Id = id;
            return(id);
        }
Beispiel #2
0
        public bool InsertAudit(AuditModel Audit)
        {
            bool result = false;

            try
            {
                using (AuditEntities auditEntities = new AuditEntities())
                {
                    var config = new MapperConfiguration(
                        cfg =>
                    {
                        cfg.CreateMap <AuditModel, Audit>();
                    }
                        );

                    var mapper = config.CreateMapper();
                    var audit  = mapper.Map <Audit>(Audit);
                    auditEntities.Audits.Add(audit);
                    auditEntities.SaveChanges();
                }

                result = true;
            }
            catch (Exception ex)
            {
                var log = new Logger();
                log.LogError(Audit.UserID.ToString(), "DataSolutions.Data", "InsertAudit", ex.Message);
            }

            return(result);
        }
Beispiel #3
0
        private static Data.Audit CreateAudit(AuditModel model)
        {
            return(new Data.Audit()
            {
                DateTime = model.DateTime,
                IpAddress = model.IpAddress,
                Url = model.UrlAccessed,
                Data = model.Data,
                Duration = model.DurationTicks,
                UserName = model.UserName,
                UserId = model.UserId,
                Controller = model.Controller,
                Action = model.Action,
                SessionId = model.SessionId,
                RequestMethod = model.RequestMethod,
                AuditTypeCode = model.AuditTypeString,
                Notes = model.Notes,
                EntityName = model.EntityName,
                EntityRecordId = model.EntityRecordId,

                AuditDetails = model.AuditDetails != null?model.AuditDetails.Select(d => CreateAuditDetail(d)).ToArray() : new AuditDetail[]
                {
                },
            });
        }
Beispiel #4
0
        public static bool InsertAuditDetails(AuditModel _AuditModel)
        {
            bool result = false;

            try
            {
                if (_AuditModel != null)
                {
                    Database  db        = DatabaseFactory.CreateDatabase("Helios_V2_DB");
                    DbCommand dbCommand = db.GetStoredProcCommand("sp_Audit_Details_ins");
                    db.AddInParameter(dbCommand, "@Module_name", DbType.String, _AuditModel.Module_name);
                    db.AddInParameter(dbCommand, "@Log_date", DbType.DateTime, _AuditModel.Log_date);
                    db.AddInParameter(dbCommand, "@Function_name", DbType.String, _AuditModel.Function_name);
                    db.AddInParameter(dbCommand, "@Description", DbType.String, _AuditModel.Description);
                    db.AddInParameter(dbCommand, "@Is_error", DbType.Boolean, _AuditModel.Is_error);
                    int ret = db.ExecuteNonQuery(dbCommand);
                    if (ret > 0)
                    {
                        result = true;
                    }
                }
            }
            catch (Exception ex)
            {
                //throw;
            }
            return(result);
        }
Beispiel #5
0
        public ActionResult Home()
        {
            if (Session["User"] is UserModel user)
            {
                if (user.IsTempPassword)
                {
                    return(RedirectToAction("ResetPassword"));
                }
                else
                {
                    if (Request.UrlReferrer.ToString().Contains("Login"))
                    {
                        //Save Audit Details
                        auditModel = new AuditModel
                        {
                            ActivityDescription = "You successfully logged in",
                            AuditDate           = DateTime.Now,
                            UserID = user.UserID
                        };

                        new AuditData().InsertAudit(auditModel);
                    }


                    return(View(user));
                }
            }
            else
            {
                return(RedirectToAction("Login"));
            }
        }
        public void setup_organisation_is_added()
        {
            _organisationId = Guid.NewGuid();
            _updatedBy      = "test user";
            _fieldChanged   = "trading name 1";
            _previousValue  = "Trainer Trading Name";
            _newValue       = "ANDERSON TRAINING LTD";
            _repository     = new UpdateOrganisationRepository(_databaseService.WebConfiguration);
            var auditData = new AuditData
            {
                OrganisationId = _organisationId,
                UpdatedAt      = DateTime.Now,
                UpdatedBy      = _updatedBy,
                FieldChanges   = new List <AuditLogEntry>
                {
                    new AuditLogEntry
                    {
                        FieldChanged  = _fieldChanged,
                        PreviousValue = _previousValue,
                        NewValue      = _newValue
                    }
                }
            };

            _updateSuccessful = _repository.WriteFieldChangesToAuditLog(auditData).Result;
            _auditRecord      = AuditHandler.GetOrganisationFromOrganisationId(_organisationId);
        }
 public ActionResult Login(LoginModel _LoginModel)
 {
     try
     {
         AuditModel _AuditModel = new AuditModel();
         _AuditModel.Module_name = "Login Module";
         bool AuditResult;
         if (Membership.ValidateUser(_LoginModel.Username, _LoginModel.Password))
         {
             FormsAuthentication.SetAuthCookie(_LoginModel.Username, _LoginModel.RememberMe);
             string Msg = _LoginModel.Username + " successfully Logged in on " + DateTime.Now.ToString();
             _AuditModel.Function_name = "Employee";
             _AuditModel.Is_error      = false;
             _AuditModel.Description   = Msg;
             AuditResult = AuditLog(_AuditModel);
             return(this.RedirectToAction("Employee", "Employee"));
         }
         else
         {
             string Msg = _LoginModel.Username + " failed to login at " + DateTime.Now.ToString();
             _AuditModel.Function_name = "Login";
             _AuditModel.Is_error      = false;
             _AuditModel.Description   = Msg;
             AuditResult = AuditLog(_AuditModel);
             ViewBag.msg = "Invalid Username or Password";
         }
     }
     catch (Exception ex)
     {
         ViewBag.msg = ex.Message;
     }
     return(View());
 }
Beispiel #8
0
        public static void InsertRecord(AuditModel audit)
        {
            var sql =
                @"set identity_insert [Audit] ON;INSERT INTO [Audit] ([Id], [OrganisationId],[UpdatedBy],[UpdatedAt],[AuditData]) VALUES " +
                $@"(@id,@organisationId, @updatedBy, @updatedAt, @AuditData);set identity_insert [Audit] OFF; ";

            DatabaseService.Execute(sql, audit);
        }
Beispiel #9
0
 public Task <IActionResult> Post([FromBody] AuditModel auditModel)
 {
     return(GuardedExecute(async() =>
     {
         var item = JObject.FromObject(auditModel);
         Document savedItem = await _itemsLogic.Create(item);
         return CreatedAtRoute("GetAuditFile", new { id = savedItem.Id }, savedItem);
     }));
 }
Beispiel #10
0
        public override Task OnDisconnected(bool stopCalled)
        {
            string userName     = Context.User.Identity.Name;
            string connectionId = Context.ConnectionId;

            UserHubModels user;

            Users.TryGetValue(userName, out user);

            if (user != null)
            {
                lock (user.ConnectionIds)
                {
                    user.ConnectionIds.RemoveWhere(cid => cid.Equals(connectionId));
                    if (!user.ConnectionIds.Any())
                    {
                        UserHubModels removedUser;
                        Users.TryRemove(userName, out removedUser);
                        Clients.Others.userDisconnected(userName);
                    }
                }
            }

            ActiveConnections.ActiveUsers.Remove(userName);
            ActiveConnections.ActiveSessions.Remove(Context.ConnectionId);


            AuditModel objaudit          = new AuditModel();
            var        currentBrowserUrl = Context.QueryString["currentBrowserUrl"];

            if (userName != null && userName != "")
            {
                objaudit.UserId = Convert.ToInt64(userName);
            }

            objaudit.SessionID = Context.ConnectionId;

            ActiveSessions activeSessions = new ActiveSessions();

            activeSessions = ActiveConnections.ActiveSessionsList.Where(x => x.ConnectionId == Context.ConnectionId).FirstOrDefault();

            if (activeSessions != null)
            {
                objaudit.ConnectedOn = activeSessions.ConnectedOn;
                objaudit.IPAddress   = activeSessions.IpAddress;
            }

            objaudit.PageAccessed = currentBrowserUrl;

            objaudit.DisconnectedOn = DateTime.Now;

            this._IAuditOrchestrator.SaveMVCAuditTrail(objaudit);


            return(base.OnDisconnected(stopCalled));
        }
Beispiel #11
0
 public static void GetMissingEntityRecordIdFromDetails(this AuditModel audit)
 {
     if (audit.EntityRecordId == null && audit.EntityName != null)
     {
         AuditDetailModel logDetail = audit.AuditDetails.Where(ad => ad.EntityName == audit.EntityName).FirstOrDefault();
         if (logDetail != null)
         {
             audit.EntityRecordId = logDetail.RecordId;
         }
     }
 }
Beispiel #12
0
        public IHttpActionResult GetBillInfo(HttpRequestMessage request, AuditModel model)
        {
            if (model == null)
            {
                return(BadRequest("请求错误"));
            }
            string validateCode = GetHeader(request, "x-session-token");
            string userId       = GetHeader(request, "x-session-userid");
            var    result       = Service.GetBillInfo(userId, validateCode, model.ProgId, model.BillNo, model.RowId);

            return(Ok(result));
        }
        public async Task <IActionResult> StockInAudit([FromBody] AuditModel model)
        {
            if (!ModelState.IsValid)
            {
                return(GetModelErrorCode());
            }
            reqmodel <AuditModel> reqmodel = await RequestPackingAsync(model);

            IStockServer stockServer = new StockServerImpl(g_dbHelper, g_logServer);

            return(await stockServer.StockInAuditAsync(reqmodel));
        }
        public async Task <AuditModel> Add(AuditModel audit)
        {
            audit.EntryDate = DateTime.Now;

            var newAudit = new Audit().Assign(audit);

            await _context.AddAsync(audit);

            await _context.SaveChangesAsync();

            return(audit);
        }
Beispiel #15
0
        public override Task OnConnected()
        {
            var serverVars = Context.Request.GetHttpContext().Request.ServerVariables;
            var IpAddress  = serverVars["REMOTE_ADDR"];

            string userName     = Context.User.Identity.Name;
            string connectionId = Context.ConnectionId;

            var user = Users.GetOrAdd(userName, _ => new UserHubModels
            {
                UserName      = userName,
                ConnectionIds = new HashSet <string>()
            });

            lock (user.ConnectionIds)
            {
                user.ConnectionIds.Add(connectionId);
                if (user.ConnectionIds.Count == 1)
                {
                    Clients.Others.userConnected(userName);
                }
            }

            ActiveConnections.ActiveUsers.Add(userName);
            ActiveConnections.ActiveSessions.Add(Context.ConnectionId);
            ActiveConnections.ActiveSessionsList.Add(new ActiveSessions
            {
                ConnectionId  = Context.ConnectionId
                , IpAddress   = IpAddress
                , ConnectedOn = DateTime.Now
            });

            AuditModel objaudit          = new AuditModel();
            var        currentBrowserUrl = Context.QueryString["currentBrowserUrl"];

            if (userName != null && userName != "")
            {
                objaudit.UserId = Convert.ToInt64(userName);
            }

            objaudit.SessionID = Context.ConnectionId;

            objaudit.IPAddress = IpAddress;

            objaudit.PageAccessed = currentBrowserUrl;

            objaudit.ConnectedOn = DateTime.Now;

            this._IAuditOrchestrator.SaveMVCAuditTrail(objaudit);

            return(base.OnConnected());
        }
Beispiel #16
0
        public static AuditDto CreateDto(this AuditModel model)
        {
            var dto = new AuditDto
            {
                Id            = model.Id,
                FacilityId    = model.FacilityId,
                StartTimeUtc  = model.StartTime.UtcDateTime,
                FinishTimeUtc = model.FinishTime.UtcDateTime,
                Groups        = model.Groups.Select(x => x.CreateDto()).ToList()
            };

            return(dto);
        }
Beispiel #17
0
 private static void Sanitize(this AuditModel audit)
 {
     audit.IpAddress     = Sanitize(audit.IpAddress, 100);
     audit.UrlAccessed   = Sanitize(audit.UrlAccessed, 1000);
     audit.UserName      = Sanitize(audit.UserName, 256);
     audit.Controller    = Sanitize(audit.Controller, 1000);
     audit.Action        = Sanitize(audit.Action, 1000);
     audit.SessionId     = Sanitize(audit.SessionId, 1000);
     audit.RequestMethod = Sanitize(audit.RequestMethod, 100);
     //audit.AuditTypeString = Sanitize(audit.AuditTypeString, 100);
     audit.EntityName     = Sanitize(audit.EntityName, 100);
     audit.EntityRecordId = Sanitize(audit.EntityRecordId, 100);
 }
 public static DbSchema FromDomain(AuditModel source)
 {
     return(new DbSchema
     {
         Timestamp = source.Timestamp,
         CorrelationId = source.CorrelationId,
         Type = source.Type.ToString(),
         DataDiff = source.DataDiff,
         DataReference = source.DataReference,
         DataType = source.DataType.ToString(),
         UserName = source.UserName,
     });
 }
Beispiel #19
0
        private bool SaveAudit(string Description, int UserID)
        {
            result = false;
            var audit = new AuditModel
            {
                ActivityDescription = Description,
                AuditDate           = DateTime.Now,
                UserID = UserID
            };

            result = new AuditData().InsertAudit(audit);

            return(result);
        }
        public static AuditModel CreateModel(this AuditDto dto)
        {
            var groups = dto.Groups.Select(x => x.CreateModel()).ToList();

            var model = new AuditModel(groups)
            {
                Id         = dto.Id,
                FacilityId = dto.FacilityId,
                StartTime  = dto.StartTimeUtc.ToLocalTime(),
                FinishTime = dto.FinishTimeUtc.ToLocalTime()
            };

            return(model);
        }
Beispiel #21
0
        public IHttpActionResult Audit(HttpRequestMessage request, AuditModel model)
        {
            if (model == null)
            {
                return(BadRequest("请求错误"));
            }
            string validateCode = GetHeader(request, "x-session-token");
            var    result       = Service.Audit(model.ProgId, model.BillNo, model.RowId, model.UserId, validateCode, model.IsPass, model.Message);

            if (!result.ReturnValue)
            {
                return(BadRequest(result.Message));
            }
            return(Ok(result));
        }
Beispiel #22
0
        private static async Task GetLogDetailsForUpdatedAndDeletedAsync(
            DbContext db,
            AuditModel audit,
            Dictionary <string, AuditConfig> logConfigDictionary)
        {
            foreach (var ent in db.ChangeTracker.Entries().Where(p => p.State == EntityState.Modified || p.State == EntityState.Deleted))
            {
                // For each changed record, get the audit record entries and add them
                List <AuditDetailModel> auditDetails = await GetAuditRecordsForChangeAsync(db, logConfigDictionary, ent, ent.State);

                foreach (AuditDetailModel logDetail in auditDetails)
                {
                    audit.AuditDetails.Add(logDetail);
                }
            }
        }
        public bool AuditLog(AuditModel _AuditModel)
        {
            bool ret = false;

            try
            {
                AuditBL _AuditBL = new AuditBL();
                _AuditModel.Log_date = DateTime.Now;
                ret = _AuditBL.InsertAuditBL(_AuditModel);
            }
            catch (Exception ex)
            {
                ViewBag.msg = ex.Message;
            }
            return(ret);
        }
Beispiel #24
0
        public async Task Invoke(HttpContext context, AuditModel auditModel)
        {
            try
            {
                auditModel.UserName = context.User.Identity.Name;
                //auditModel.Controller = contextAccessor.HttpContext.
                await _next(context);
            }
            catch (Exception ex)
            {
                //await TryLogAsync(context, ex);

                // Оригиналният exception се подава към следващия middleware,
                throw ex;
            }
        }
Beispiel #25
0
        private static async Task GetLogDetailsForAddedAsync(
            DbContext db,
            AuditModel audit,
            Dictionary <string, AuditConfig> auditConfigDictionary,
            IEnumerable <EntityEntry> addedEntries)
        {
            foreach (var ent in addedEntries)
            {
                List <AuditDetailModel> logDetails = await GetAuditRecordsForChangeAsync(db, auditConfigDictionary, ent, EntityState.Added);

                foreach (AuditDetailModel logDetail in logDetails)
                {
                    audit.AuditDetails.Add(logDetail);
                }
            }
        }
Beispiel #26
0
 public JSUserAction[] Audit(AuditModel model)
 {
     return(db.UserAction
            .Where(x => (!model.PortalUserId.HasValue || model.PortalUserId.Value == x.PortalUserId) && (DateTime.Compare(model.FromDate.Value, x.OnTime) <= 0) && (DateTime.Compare(model.ToDate.Value.AddDays(1), x.OnTime) >= 0))
            .OrderBy(x => x.OnTime)
            .Select(x => new JSUserAction()
     {
         Content = x.Content,
         PortalUserId = x.PortalUserId,
         OnTime = x.OnTime,
         Title = x.Title,
         UserActionId = x.UserActionId,
         UserName = x.PortalUser.Name
     })
            .ToArray());
 }
Beispiel #27
0
        public Dictionary <string, object> ToDic()
        {
            var dic = new Dictionary <string, object>();

            dic.SetValue("StepKey", StepKey.ToString());
            dic.SetValue("StepName", StepName.ToString());
            dic.SetValue("UserID", UserID);
            dic.SetValue("UserName", UserName);
            dic.SetValue("Options", String.Join <AuditOption>(",", this.Options));
            dic.SetValue("StepIndex", StepIndex);
            dic.SetValue("AuditModel", AuditModel.ToString());
            dic.SetValue("AuditRole", AuditRole.ToString());
            dic.SetValue("MustStep", MustStep);
            dic.SetValue("CoSign", CoSign);
            dic.SetValue("CoSignRole", CoSignRole);
            return(dic);
        }
Beispiel #28
0
        public JsonResult ResetPassword(string Email)
        {
            bool result = false;
            var  user   = new UserData().ResetPassword(Email);

            if (user != null)
            {
                //Read Template and send email
                string        path = Server.MapPath("/Templates");
                StringBuilder sb   = new StringBuilder(System.IO.File.ReadAllText(path + @"/ResetPassword.html"));
                sb.Replace("!!!FirstName!!!", user.FirstName)
                .Replace("!!!Surname!!!", user.Surname)
                .Replace("!!!Password!!!", new DataEncryption().Decrypt(user.Password));

                //Audit
                result = new UserData().InsertUser(user);
                //Save Audit Details
                auditModel = new AuditModel
                {
                    ActivityDescription = "Your password was reset",
                    AuditDate           = DateTime.Now,
                    UserID = user.UserID
                };

                result = new AuditData().InsertAudit(auditModel);

                //Test Email TODO: Remove
                user.Email = "*****@*****.**";

                Domain.Model.Utilities.Email email = new Domain.Model.Utilities.Email
                {
                    Attachment    = null,
                    EmailMessage  = sb.ToString(),
                    FromAddress   = "*****@*****.**",
                    HasAttachment = false,
                    Subject       = "Password Reset",
                    ToEmail       = new List <string> {
                        user.Email
                    }
                };

                result = new Utilities.Mail.Email().SendEmail(email);
            }

            return(Json(result));
        }
Beispiel #29
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            string actionName = filterContext.ActionDescriptor.ActionName;

            string controllerName = filterContext.ActionDescriptor.ControllerDescriptor.ControllerName;

            var        request  = filterContext.HttpContext.Request;
            AuditModel objaudit = new AuditModel();
            var        user     = HttpContext.Current.User as Web.Authentication.CustomPrincipal;

            if (user == null)
            {
                objaudit.UserId = 0;
            }
            else
            {
                objaudit.UserId = user.UserId;
            }

            objaudit.UsersAuditID = 0;

            objaudit.SessionID = HttpContext.Current.Session.SessionID;

            objaudit.IPAddress = request.ServerVariables["HTTP_X_FORWARDED_FOR"] ?? request.UserHostAddress;

            objaudit.PageAccessed = request.RawUrl;

            objaudit.LoggedInAt = DateTime.Now;

            if (actionName == "LogOut")

            {
                objaudit.LoggedOutAt = DateTime.Now;
            }

            objaudit.LoginStatus = "A";

            objaudit.ControllerName = controllerName;

            objaudit.ActionName = actionName;

            _IAuditOrchestrator.SaveMVCAuditTrail(objaudit);

            base.OnActionExecuting(filterContext);
        }
Beispiel #30
0
        protected override async Task OnInitializedAsync()
        {
            _cancellationTokenSource = new CancellationTokenSource();

            if (string.IsNullOrEmpty(AuditId))
            {
                Audit = new AuditModel(AuditItemFactory.CreateDefaultAuditGroups())
                {
                    FacilityId = FacilityId
                };
            }
            else
            {
                var auditDto = await HttpClient.GetFromJsonAsync <AuditDto>($"api/audits/{AuditId}");

                Audit = auditDto.CreateModel();
            }
        }