public SyncNuGetVersionTask( EventWriter eventWriter, [Import("BinaryVersionManager")] IVersionManager binaryVersionReader) : base(eventWriter) { if (eventWriter == null) { throw new ArgumentNullException("eventWriter"); } if (binaryVersionReader == null) { throw new ArgumentNullException("binaryVersionReader"); } BinaryVersionReader = binaryVersionReader; }
public JsonResult DeleteServiceGroup(int id) { DbContextTransaction transaction = null; try { // Start transaction transaction = db.Database.BeginTransaction(); // Get car service group info var group = db.CarServiceGroups.Where(r => r.groupId == id).FirstOrDefault(); if (group != null) { // Remove service details var services = db.CarServices.Where(r => r.groupId == group.groupId).ToList(); foreach (var service in services) { db.CarServiceDetails.RemoveRange(db.CarServiceDetails.Where(r => r.serviceId == service.serviceId).ToList()); } // Remove services db.CarServices.RemoveRange(services); // Remove group db.CarServiceGroups.Remove(group); db.SaveChanges(); transaction.Commit(); // Success return(Json(new { Success = true, Message = "Xóa nhóm dịch vụ thành công!" })); } else { // Fail return(Json(new { Success = false, Message = "Nhóm dịch vụ #" + id + " không tồn tại trong hệ thống!" })); } } catch (Exception ex) { // Rollback if (transaction != null) { transaction.Rollback(); } // Write error logs EventWriter.WriteEventLog("SystemController - DeleteCarServiceGroup: " + ex.ToString()); // Return error return(Json(new { Success = false, Message = ex.Message })); } }
public void WritePartyMember(PartyMember partyMember, IDataWriter dataWriter) { WriteCharacter(partyMember, dataWriter); EventWriter.WriteEvents(dataWriter, partyMember.Events, partyMember.EventList); }
private static void InitializeCodes() { try { var xml = Contracts.HttpResources.httpstatuscodes; XDocument xdoc = XDocument.Parse(xml); statusCodes = (from x in xdoc.Descendants("HttpCode") let y = x select new ApiHttpStatusCode() { Code = Int32.Parse(x.Attribute("code").Value), Name = x.Attribute("name").Value, Summary = (x.Attribute("sys.net").Value).Trim(), IsSuccess = Boolean.Parse(x.Attribute("success").Value) }).ToList(); } catch (Exception ex) { string message = ex.InnerException != null ? ex.InnerException.Message : ex.Message; var props = eXtensibleConfig.GetProperties(); EventWriter.WriteError(message, SeverityType.Critical, "Initialization", props); } string candidates = ConfigurationManager.AppSettings["api.httpcodes.whitelist"]; List <int> codes = new List <int>(); if (!String.IsNullOrWhiteSpace(candidates)) { string[] t = candidates.Split(new char[] { ',', ';', '.' }); foreach (var item in t) { int j; if (Int32.TryParse(item, out j)) { codes.Add(j); } } } else { codes.Add(200); codes.Add(201); codes.Add(202); codes.Add(400); codes.Add(401); codes.Add(403); codes.Add(404); codes.Add(409); codes.Add(500); } _ErrorCodeWhitelist = new List <ApiHttpStatusCode>(); foreach (var code in statusCodes) { if (codes.Contains(code.Code)) { code.IsAvailable = true; } _ErrorCodeWhitelist.Add(code); maps.TryAdd(code.Code, code); } }
/// <summary> /// Pulls down commit data from GitHub and creates events for each commit, which are then streamed to Splunk. /// </summary> /// <remarks> /// This function will be invoked once for each instance of the modular input, though that invocation /// may or may not be in separate processes, depending on how the modular input is configured. It should /// extract the arguments it needs from <tt>inputDefinition</tt>, then write events to <tt>eventWriter</tt> /// (which is thread safe). /// </remarks> /// <param name="inputDefinition">The definition for this instance of the GitHub input, representing a GitHub repository.</param> /// <param name="eventWriter">An object that handles writing events to Splunk.</param> public override async Task StreamEventsAsync(InputDefinition inputDefinition, EventWriter eventWriter) { var owner = ((SingleValueParameter)inputDefinition.Parameters["Owner"]).ToString(); var repository = ((SingleValueParameter)inputDefinition.Parameters["Repository"]).ToString(); var checkpointFilePath = Path.Combine(inputDefinition.CheckpointDirectory, owner + " " + repository + ".txt"); var productHeader = new ProductHeaderValue("splunk-sdk-csharp-github-commits"); ObservableGitHubClient client; if (!inputDefinition.Parameters.ContainsKey("Token") || String.IsNullOrWhiteSpace(((SingleValueParameter)inputDefinition.Parameters["Token"]).ToString())) { client = new ObservableGitHubClient(productHeader); } else { client = new ObservableGitHubClient(productHeader, new InMemoryCredentialStore(new Credentials(((SingleValueParameter)inputDefinition.Parameters["Token"]).ToString()))); } var shaKeys = new HashSet <string>(); var fileReader = new StreamReader(File.Open(checkpointFilePath, System.IO.FileMode.OpenOrCreate)); string line; while (!String.IsNullOrWhiteSpace(line = await fileReader.ReadLineAsync())) { shaKeys.Add(line); } fileReader.Close(); bool done = false; var fileWriter = new StreamWriter(checkpointFilePath); // Use Rx to stream an event for each commit as they come in client.Repository.Commits.GetAll(owner, repository).Subscribe( async githubCommit => { if (!shaKeys.Contains(githubCommit.Sha)) { await StreamCommit(githubCommit, eventWriter, owner, repository); await fileWriter.WriteLineAsync(githubCommit.Sha); // Write to the checkpoint file shaKeys.Add(githubCommit.Sha); await eventWriter.LogAsync(Severity.Info, repository + " indexed a Github commit with sha: " + githubCommit.Sha); } }, async e => { //error handing goes here await eventWriter.LogAsync(Severity.Error, e.GetType() + " - " + e.StackTrace); }, () => { //completion handling goes here fileWriter.Close(); done = true; } ); // Wait for Rx subscribe to finish above while (!done) { await Task.Delay(100); } }
/// <summary> /// Constructor of EventWriteHolder. /// </summary> /// <param name="level">Level when to trigger the event writer.</param> /// <param name="write">Event writer method.</param> public EventWriterHolder(EventLevel level, EventWriter write) { Level = level; Write = write; }
public JsonResult AddOrderDetails(int orderId, int itemId, int quantity) { try { // get order var order = db.Orders.Where(r => r.orderId == orderId).FirstOrDefault(); if (order != null) { // get service details var serviceDetails = db.CarServiceDetails.Where(r => r.itemId == itemId).FirstOrDefault(); if (serviceDetails != null) { // get service var service = db.CarServices.Where(r => r.serviceId == serviceDetails.serviceId).FirstOrDefault(); if (service != null) { // get group var group = db.CarServiceGroups.Where(r => r.groupId == service.groupId).FirstOrDefault(); if (group != null) { var orderDetails = new OrderDetails(); orderDetails.orderId = orderId; orderDetails.itemId = orderId; orderDetails.itemName = serviceDetails.itemName; orderDetails.serviceId = service.serviceId; orderDetails.serviceName = service.serviceName; orderDetails.groupId = service.groupId; orderDetails.groupName = group.groupName; orderDetails.unit = serviceDetails.unit; orderDetails.quantity = quantity; orderDetails.price = serviceDetails.price; orderDetails.priceOriginal = serviceDetails.priceOriginal; db.OrderDetails.Add(orderDetails); db.SaveChanges(); return(Json(new { Success = true, Message = "Thêm chi tiết đơn hàng thành công!" })); } else { return(Json(new { Success = false, Message = "Chi tiết dịch vụ không hợp lệ!" })); } } else { return(Json(new { Success = false, Message = "Chi tiết dịch vụ không hợp lệ!" })); } } else { return(Json(new { Success = false, Message = "Không tìm thấy chi tiết dịch vụ!" })); } } else { return(Json(new { Success = false, Message = "Không tìm thấy đơn hàng!" })); } } catch (Exception ex) { // Write error logs EventWriter.WriteEventLog("SaleController - AddOrderDetails: " + ex.ToString()); // Return error return(Json(new { Success = false, Message = ex.Message })); } }
/// <summary> /// ctor /// </summary> /// <param name="writer">Splunk writer</param> /// <param name="stanza">SourceType</param> public SplunkWriter(EventWriter writer, string stanza) { this.Writer = writer; this.Stanza = stanza; }
/// <summary> /// Write events to Splunk from this modular input. /// </summary> /// <remarks> /// This function will be invoked once for each instance of the modular input, though that invocation /// may or may not be in separate processes, depending on how the modular input is configured. It should /// extract the arguments it needs from <tt>inputDefinition</tt>, then write events to <tt>eventWriter</tt> /// (which is thread safe). /// </remarks> /// <param name="inputDefinition">a specification of this instance of the modular input.</param> /// <param name="eventWriter">an object that handles writing events to Splunk.</param> public override async Task StreamEventsAsync(InputDefinition inputDefinition, EventWriter eventWriter) { try { string logfilepath = ((SingleValueParameter)(inputDefinition.Parameters["logfilepath"])).ToString(); Int32 maxmessagecount = ((SingleValueParameter)(inputDefinition.Parameters["maxmessagecount"])).ToInt32(); Int32 cycletime = ((SingleValueParameter)(inputDefinition.Parameters["cycletime"])).ToInt32(); //Setup the options input OptionsStruct localOptionsStruct = new OptionsStruct(); localOptionsStruct.LogDirectory = logfilepath; // Initialize the log reader aaLogReader.aaLogReader logReader = new aaLogReader.aaLogReader(localOptionsStruct); // Write an entry to the Splunk system log indicating we have initialized await eventWriter.LogAsync(Severity.Info, "Initialized Log reader for path " + logfilepath + " and message count " + maxmessagecount.ToString()); while (true) { await(Task.Delay(cycletime)); //Simple call to get all unread records, limiting the return count to max message count List <LogRecord> logRecords = logReader.GetUnreadRecords((ulong)maxmessagecount); // Loop through each lastRecordRead and send to Splunk foreach (LogRecord record in logRecords) { await eventWriter.QueueEventForWriting(new Event { Stanza = inputDefinition.Name, Data = record.ToKVP() }); } } } catch (Exception ex) { // Eat error message await eventWriter.LogAsync(Severity.Error, ex.ToString()); } }
public HttpResponseMessage save([FromBody] JObject json) { var eventLogs = ""; // Start transaction var dbTrans = db.Database.BeginTransaction(); try { eventLogs += "Create order:\r\n" + json.ToString(); // Create new order var order = new Order(); order.phone = json.Value <string>("phone") ?? string.Empty; order.fullname = json.Value <string>("fullname") ?? string.Empty; order.address = json.Value <string>("address") ?? string.Empty; order.amount = json.Value <decimal?>("amount") ?? 0; order.note = json.Value <string>("note") ?? string.Empty; order.status = (int)Order.Status.STATUS_OPENED; var orderDetails = new List <OrderDetails>(); var services = json.Value <JArray>("serviceBookings"); var title = ""; foreach (var service in services) { var groupId = service.Value <int>("groupId"); var groupName = service.Value <string>("groupName"); var serviceId = service.Value <int>("serviceId"); var serviceName = service.Value <string>("serviceName"); var bookType = service.Value <int>("bookType"); var serviceDetails = service.Value <JArray>("details"); foreach (var details in serviceDetails) { var item = new OrderDetails(); item.groupId = groupId; item.groupName = groupName; item.serviceId = serviceId; item.serviceName = serviceName; item.itemId = details.Value <int>("itemId"); item.itemName = details.Value <string>("itemName"); item.unit = details.Value <string>("unit"); item.quantity = 1; item.price = details.Value <decimal>("price"); item.priceOriginal = details.Value <decimal>("priceOriginal"); orderDetails.Add(item); } title += string.IsNullOrWhiteSpace(title) ? serviceName : " + " + serviceName; } order.title = title; // Validate order if (string.IsNullOrWhiteSpace(order.phone)) { return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = "Đơn hàng không hợp lệ! Số điện thoại không được rỗng" })); } if (orderDetails.Count() == 0) { return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = "Đơn hàng không hợp lệ! Đơn hàng không có thông tin chi tiết" })); } // Save order info db.Orders.Add(order); db.SaveChanges(); // update order details var orderId = order.orderId; var amount = (decimal)0.0; foreach (var item in orderDetails) { item.orderId = orderId; amount += item.price; } order.amount = amount; db.OrderDetails.AddRange(orderDetails); db.SaveChanges(); dbTrans.Commit(); // Append event logs eventLogs += "OrderController - save: success"; // Send email var receiver = ConfigurationManager.AppSettings["ADMIN_EMAIL"]; var receiverName = string.IsNullOrWhiteSpace(order.fullname) ? order.phone : order.fullname; var subject = "Đặt hàng thành công"; var body = ""; body += "<strong>Kính chào quí khách " + receiverName + ",</strong><br />"; body += "<p>L.M.W vừa nhận được đơn hàng <strong>#" + order.orderId + "</strong> của quí khách đặt ngày " + order.date.ToString("dd/MM/yyyy HH:mm") + " "; body += "với hình thức thanh toán <strong>Cash On Delivery (COD)</strong>.</p><br />"; body += "<p><strong>Sau đây là thông tin chi tiết đơn hàng:</strong></p><br />"; body += "<p>Đơn hàng: " + order.orderId + "</p><br />"; body += "<p>Điện thoại: " + order.phone + "</p><br />"; body += "<p>Địa chỉ: " + order.address + "</p><br /><br />"; body += "<table><tr><th nowrap>STT</th><th nowrap>Tên</th><th nowrap>ĐVT</th><th nowrap>Số lượng</th><th nowrap>Giá</th><th nowrap>Thành tiền</th></tr>"; var count = 0; foreach (var item in orderDetails) { count++; body += "<tr>"; body += "<td nowrap>" + count + "</td>"; body += "<td nowrap>" + item.itemName + "</td>"; body += "<td nowrap>" + item.unit + "</td>"; body += "<td align='right' nowrap>" + item.quantity + "</td>"; body += "<td align='right' nowrap>" + item.price.ToString("#,###") + "</td>"; body += "<td align='right' nowrap>" + (item.quantity * item.price).ToString("#,###") + "</td>"; body += "</tr>"; } body += "<tr><td colspan='5'><strong>Số tiền tạm tính:</strong></td><td align='right'><strong>" + order.amount.ToString("#,###") + "</strong></td></tr>"; body += "</table><br />"; body += "<p>Cám ơn quí khác đã sử dụng dịch vụ của chúng tôi!</p>"; body += "<p><strong>L.M.W</strong></p>"; Emailer.sendMail(receiver, receiverName, subject, body); // return service groups return(Request.CreateResponse(HttpStatusCode.OK, new { Success = true, Data = "Lưu đơn hàng thành công!" })); } catch (Exception ex) { // Rollback transaction dbTrans.Rollback(); eventLogs = "OrderController - save: " + ex.ToString(); return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = ex.ToString() })); } finally { // write event logs if (string.IsNullOrWhiteSpace(eventLogs) == false) { EventWriter.WriteEventLog(eventLogs); } } }
public override async Task StreamEventsAsync(InputDefinition inputDefinition, EventWriter eventWriter) { await eventWriter.QueueEventForWriting(new Event { Data = "Boris!" }); }
public ActionResult SignIn(SignInModel model) { var eventLogs = ""; try { if (ModelState.IsValid) { eventLogs += "Login, user:"******", success"; return(RedirectToAction("Index", "Admin")); } else { eventLogs += ", fail, wrong password"; ModelState.AddModelError("", "Sai mật khẩu"); } } else { eventLogs += ", fail, invalid user"; ModelState.AddModelError("", "Sai tên tài khoản"); } } } catch (Exception ex) { // set error ModelState.AddModelError("", ex.Message); // write error log eventLogs += "error: " + ex.Message; } finally { // Write event log if (!string.IsNullOrWhiteSpace(eventLogs)) { EventWriter.WriteEventLog(eventLogs); } } return(View(model)); }
public override async Task StreamEventsAsync(InputDefinition inputDefinition, EventWriter eventWriter) { int interval = 1000; try { // if user didn't give value for polling_interval, type conversion to SingleValueParameter will throw interval = int.Parse(((SingleValueParameter)inputDefinition.Parameters["polling_interval"]).ToString()); } catch (Exception) { } const string Seperator = @"://"; int index = inputDefinition.Name.IndexOf(Seperator) + Seperator.Length; string varName = inputDefinition.Name.Substring(index); string lastVarValue = null; while (true) { await Task.Delay(interval); string varValue = Environment.GetEnvironmentVariable(varName, EnvironmentVariableTarget.Machine); // Event data can't be null for real events. varValue = varValue ?? "(not exist)"; // Splunk does not record lines with only white spaces. varValue = string.IsNullOrWhiteSpace(varValue) ? "(white space)" : varValue; if (varValue != lastVarValue) { await eventWriter.QueueEventForWriting(new Event { Stanza = varName, Data = string.Format("{0}, interval={1}, inputDefinition.Name={2} , varName={3}", varValue, interval, inputDefinition.Name, varName) }); lastVarValue = varValue; } } }
protected UserScriptBase() { console = new EventWriter(this); }
public override Task StreamEventsAsync(InputDefinition inputDefinition, EventWriter eventWriter) { Executed = true; return(Task.FromResult(false)); }
public override Task StreamEventsAsync(InputDefinition inputDefinition, EventWriter eventWriter) { Executed = true; return Task.FromResult(false); }
public override async Task StreamEventsAsync(InputDefinition inputDefinition, EventWriter eventWriter) { double min = ((SingleValueParameter)inputDefinition.Parameters["min"]).ToDouble(); double max = ((SingleValueParameter)inputDefinition.Parameters["max"]).ToDouble(); while (true) { await Task.Delay(100); await eventWriter.QueueEventForWriting(new Event { Stanza = inputDefinition.Name, Data = "number=" + (rnd.NextDouble() * (max - min) + min) }); } }
public override async Task StreamEventsAsync(InputDefinition inputDefinition, EventWriter eventWriter) { #region Get param values string streamName = inputDefinition.Name; await eventWriter.LogAsync(Severity.Info, string.Format("Name of Stanza is : {0}", inputDefinition.Name)); string reportName = await GetConfigurationValue(inputDefinition, ConstantReportName, eventWriter); string emailAddress = await GetConfigurationValue(inputDefinition, ConstantEmailAddress, eventWriter); string password = await GetConfigurationValue(inputDefinition, ConstantPassword, eventWriter, false); string start = await GetConfigurationValue(inputDefinition, ConstantStartDate, eventWriter); DateTime startDateTime = start.TryParseDateTime(DateTime.MinValue); string end = await GetConfigurationValue(inputDefinition, ConstantEndDate, eventWriter); DateTime endDateTime = end.TryParseDateTime(DateTime.MinValue); #endregion Get param values ReportingContext context = new ReportingContext(); context.UserName = emailAddress; context.Password = password; context.FromDateTime = startDateTime; context.ToDateTime = endDateTime; context.SetLogger(new SplunkTraceLogger(eventWriter)); IReportVisitor visitor = new SplunkReportVisitor(streamName, eventWriter); while (true) { await Task.Delay(1000); ReportingStream stream = new ReportingStream(context, reportName, streamName); stream.RetrieveData(visitor); } }
private IModelDataGateway <T> ResolveImplementor <T>(ModelActionOption option, IContext context, T t, ICriterion criterion) where T : class, new() { IModelDataGateway <T> implementor = null; Type type = _TypeCache.ResolveType <T>(); if (type == null) { // if not, create one and add the model. then add sproc based if exists, otherwise add inline on appcontext-model by appcontext-model basis; if (_DbConfigs.Contains(context.ApplicationContextKey)) { var modelType = typeof(T); string modelKey = modelType.FullName; var found = _DbConfigs[context.ApplicationContextKey].Models.Find(x => x.Key.Equals(modelKey)); if (found == null) { XF.Common.Db.Model model = new Common.Db.Model() { Key = modelKey, modelType = modelType.AssemblyQualifiedName, ModelActions = new List <Common.Db.ModelAction>(), Commands = new List <Common.Db.DbCommand>(), DataMaps = new List <Common.Db.DataMap>() }; _DbConfigs[context.ApplicationContextKey].Models.Add(model); found = _DbConfigs[context.ApplicationContextKey].Models.Find(x => x.Key.Equals(modelKey)); } if (found != null) { implementor = new ConfigModelDataGateway <T>(found); } else { } } else if (eXtensibleConfig.Infer) { implementor = new GenericModelDataGateway <T>(); } //if (implementor == null) //{ // var message = Exceptions.ComposeImplementorResolutionError<T>(option, t, context); // context.SetError(500, message.ToPublish()); // EventWriter.WriteError(message.ToLog(), SeverityType.Error); //} } else { implementor = Activator.CreateInstance(type) as IModelDataGateway <T>; } if (implementor == null) { if (type != null) { var message = Exceptions.ComposeImplementorInstantiationError <T>(option, t, context, type.FullName); context.SetError(500, message.ToPublish()); var props = eXtensibleConfig.GetProperties(); props.Add(XFConstants.Context.Ticket, message.Id); EventWriter.WriteError(message.ToLog(), SeverityType.Error, XFConstants.Category.DataAccess, props); } else { var message = Exceptions.ComposeImplementorResolutionError <T>(option, t, context); context.SetError(500, message.ToPublish()); var props = eXtensibleConfig.GetProperties(); props.Add(XFConstants.Context.Ticket, message.Id); EventWriter.WriteError(message.ToLog(), SeverityType.Error, XFConstants.Category.DataAccess, props); } } else { if (eXtensibleConfig.Inform) { EventWriter.Inform(String.Format("MDG selected: {0}", implementor.GetType().FullName)); } implementor.DataService = this as IDatastoreService; implementor.Context = context; ICacheable <T> cacheable = implementor as ICacheable <T>; if (cacheable != null) { cacheable.Cache = Cache; } // TODO, outsource this IModelDataGatewayInitializeable initializable = implementor as IModelDataGatewayInitializeable; if (initializable != null) { initializable.Initialize <T>(option, context, t, criterion, ResolveDbKey <T>); } } return(implementor); }
private async Task <string> GetConfigurationValue(InputDefinition definition, string keyName, EventWriter writer, bool log = true) { Parameter parameter; if (definition.Parameters.TryGetValue(keyName, out parameter)) { await writer.LogAsync(Severity.Info, string.Format("Value for [{0}] retrieved successfully: {1}", keyName, log ? parameter.ToString() : "# Value not logged #")); return(parameter.ToString()); } else { return(null); } }
public ActionResult ListOrders(string date1, string date2, string filter = "", int status = 0, int page = 1) { try { // Validate page page = page > 0 ? page : 1; // Get default pagesize var pageSize = int.Parse(ConfigurationManager.AppSettings["PAGE_SIZE"]); // Get search date range var provider = CultureInfo.InvariantCulture; var d1 = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1); var d2 = DateTime.Now; if (!String.IsNullOrWhiteSpace(date1) && !String.IsNullOrWhiteSpace(date2)) { DateTime.TryParseExact(date1, "dd/MM/yyyy", provider, DateTimeStyles.None, out d1); DateTime.TryParseExact(date2 + " 23:59:59", "dd/MM/yyyy HH:mm:ss", provider, DateTimeStyles.None, out d2); } // Query data var pDate1 = new SqlParameter("date1", d1); var pDate2 = new SqlParameter("date2", d2); var pFilter = new SqlParameter("filter", filter); var pStatus = new SqlParameter("status", status); var pPageIndex = new SqlParameter("pageIndex", page); var pPageSize = new SqlParameter("pageSize", pageSize); var pItemCount = new SqlParameter("itemCount", System.Data.SqlDbType.Int, 4); pPageIndex.Direction = System.Data.ParameterDirection.InputOutput; pItemCount.Direction = System.Data.ParameterDirection.Output; var orders = db.Database.SqlQuery <Order>(@"EXEC [dbo].[usp_searchOrders] @date1, @date2, @filter, @status, @pageIndex OUT, @pageSize, @itemCount OUT", pDate1, pDate2, pFilter, pStatus, pPageIndex, pPageSize, pItemCount).ToList(); // Create view model var totalItems = (int)pItemCount.Value; var pager = new Pager(totalItems, (int)pPageIndex.Value, pageSize); var statusOptions = new SelectListItem[] { new SelectListItem { Value = "0", Text = "--Tất cả--", Selected = (status == 0) }, new SelectListItem { Value = "1", Text = "Đang Mở", Selected = (status == (int)Order.Status.STATUS_OPENED) }, new SelectListItem { Value = "2", Text = "Đã tiếp nhận", Selected = (status == (int)Order.Status.STATUS_PENDIND) }, new SelectListItem { Value = "3", Text = "Đang xử lý lý", Selected = (status == (int)Order.Status.STATUS_PROCESSING) }, new SelectListItem { Value = "4", Text = "Hoàn tất", Selected = (status == (int)Order.Status.STATUS_FINISHED) }, new SelectListItem { Value = "5", Text = "Đã đóng", Selected = (status == (int)Order.Status.STATUS_CLOSED) } }; var model = new ListOrderModel { Date1 = d1, Date2 = d2, Filter = filter, Status = status, StatusOptions = statusOptions, Items = orders, Pager = pager }; return(View(model)); } catch (Exception ex) { ModelState.AddModelError("", ex.ToString()); EventWriter.WriteEventLog("SaleController - ListOrders: " + ex.ToString()); } return(View()); }
/// <summary> /// Splunk callback use to launch the plugin /// </summary> /// <param name="inputDefinition">Retrieve the config set into inputs.conf</param> /// <param name="eventWriter">event writer use to communicate with splunk</param> /// <returns></returns> public override async Task StreamEventsAsync(InputDefinition inputDefinition, EventWriter eventWriter) { var splunkHome = Environment.GetEnvironmentVariable("SPLUNK_HOME"); var profile = inputDefinition.Name.Split(new string[] { "://" }, StringSplitOptions.RemoveEmptyEntries)[1]; await eventWriter.LogAsync(Severity.Info, "Splunk-ETW select " + profile + " profile"); string iniPath = Path.Combine(new string[] { splunkHome, "etc", "apps", "Splunk-ETW", "profile", profile + ".ini" }); await eventWriter.LogAsync(Severity.Info, "Splunk-ETW load " + iniPath); try { var trace = TraceManager.BuildFromConfig(new FileIniDataParser().ReadFile(iniPath), new SplunkWriter(eventWriter, inputDefinition.Name)); await Task.Run(() => trace.Start()); } catch (Exception e) { await eventWriter.LogAsync(Severity.Error, e.ToString()); } }
protected async override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { HttpResponseMessage errorMessage = null; Guid xfId = Guid.Empty; var principal = CreateClaimsPrincipal(); eXtensibleClaimsPrincipal exPrincipal = principal as eXtensibleClaimsPrincipal; if (exPrincipal != null) { exPrincipal.Start(request); } Thread.CurrentPrincipal = exPrincipal; var currentContext = System.Web.HttpContext.Current; if (currentContext != null) { currentContext.User = exPrincipal; } HttpResponseMessage resultMessage = null; try { resultMessage = ((errorMessage != null) ? errorMessage : await base.SendAsync(request, cancellationToken)); } catch (Exception ex) { string message = ex.InnerException != null ? ex.InnerException.Message : ex.Message; var props = eXtensibleConfig.GetProperties(); EventWriter.WriteError(message, SeverityType.Critical, "api.routing", props); request.GenerateErrorResponse(HttpStatusCode.NotFound, "resource not found"); } // now perform any required profiling if (exPrincipal != null) { exPrincipal.Stop(request); var d = exPrincipal.Items.ToDictionary().Merge(eXtensibleConfig.GetProperties()); HttpStatusCode statuscode = resultMessage.StatusCode; var reason = resultMessage.ReasonPhrase; if (!resultMessage.IsSuccessStatusCode) { if (!d.ContainsKey("xf-id")) { xfId = Guid.NewGuid(); d.Add("xf-id", xfId); } else { object o = d["xf-id"]; if (o != null && o is Guid) { xfId = (Guid)o; } } if (((HttpContent)resultMessage.Content).GetType().GetGenericArguments()[0].Name.Equals("HttpError")) { var httpError = ((ObjectContent <HttpError>)resultMessage.Content).Value as HttpError; if (httpError != null) { if (httpError.ContainsKey("message")) { reason = httpError["message"].ToString(); } if (errorCodeMapsReverse.ContainsKey(resultMessage.StatusCode.ToString())) { int code = errorCodeMapsReverse[resultMessage.StatusCode.ToString()]; if (d.ContainsKey("xf-request.response.status-code")) { d["xf-request.response.status-code"] = code.ToString(); } else { d.Add("xf-request.response.status-code", code.ToString()); } } if (d.ContainsKey("xf-request.response.status-description")) { d["xf-request.response.status-description"] = reason; } else { d.Add("xf-request.response.status-description", reason); } } } else { } } else { string responsemessage = resultMessage.StatusCode.ToString(); int code = (int)resultMessage.StatusCode; if (d.ContainsKey("xf-request.response.status-code")) { d["xf-request.response.status-code"] = code.ToString(); } else { d.Add("xf-request.response.status-code", code.ToString()); } if (d.ContainsKey("xf-request.response.status-description")) { d["xf-request.response.status-description"] = responsemessage; } else { d.Add("xf-request.response.status-description", responsemessage); } } d.Add("api.extensible.list", "xf.api.request"); string basicToken; string bearerToken; if (!d.ContainsKey("xf-request.message.basic-token") && exPrincipal.Identity.TryGetValue <string>("source", out basicToken)) { d.Add("xf-request.message.basic-token", basicToken); } if (!d.ContainsKey("xf-request.message.bearer-token") && exPrincipal.Identity.TryGetValue <string>(ClaimTypes.Authentication, out bearerToken)) { d.Add("xf-request.message.bearer-token", bearerToken); } bool b = false; if (eXtensibleWebApiConfig.LoggingMode.Equals(LoggingModeOption.All)) { b = true; } else if (eXtensibleWebApiConfig.LoggingMode.Equals(LoggingModeOption.Sparse) && exPrincipal != null) { b = exPrincipal.HasError; } if (b) { Writer.Invoke(d); } } resultMessage.Headers.Add(eXtensibleWebApiConfig.MessageIdHeaderKey, xfId.ToString()); return(resultMessage); }
public SVMFeatureExtractor(string sourceFilePath, string desFilePath, bool HasHead = false) { reader = new EventReaderByLine(sourceFilePath, HasHead); writer = new EventWriterByLine(desFilePath); extractor = new SVMFeature(); }
public MaxEntFeatureExtractor(string sourceFilePath, string desFilePath) { reader = new EventReaderByLine(sourceFilePath); writer = new EventWriterByLine(desFilePath); extractor = new MaxEntFeature(); }
public HttpResponseMessage verify([FromBody] JObject json) { var eventLogs = ""; try { /** * Description * Input * + phone: Số điện thoai khách hàng * + password: Địa chỉ email khách hàng * * Output * + Thông tin customer * */ // Get requested params var phone = (json.GetValue("phone").Value <string>() ?? "").Trim(); var password = (json.GetValue("password").Value <string>() ?? "").Trim(); var customer = db.Database.SqlQuery <Customer>("EXEC [dbo].[usp_getCustomer] @phone", new SqlParameter("phone", phone)).FirstOrDefault(); if (customer != null) { // Verify password var success = SaltedHash.Verify(customer.salt, customer.password, password); if (success) { // set event logs eventLogs += "Login phone number = " + phone + " success"; return(Request.CreateResponse(HttpStatusCode.OK, new { Success = true, Data = new { phone = customer.phone, fullname = customer.fullname, email = customer.email, address = customer.address } })); } else { // set event logs eventLogs += "Login phone number = " + phone + " fail, wrong password"; return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = "Đăng nhập thất bại! Vui lòng kiểm tra lại mật khẩu" })); } } else { // set event logs eventLogs += "Login phone number = " + phone + " fail, wrong phone number"; return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = "Đăng nhập thất bại! Số điện thoại chưa được đăng ký" })); } } catch (Exception ex) { // set event logs eventLogs = "CustomerController - verify: " + ex.ToString(); return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = ex.ToString() })); } finally { // write event logs if (string.IsNullOrWhiteSpace(eventLogs) == false) { EventWriter.WriteEventLog(eventLogs); } } }
/// <summary> /// Class constructor. INTERNAL USE ONLY. /// </summary> internal EventScope(EventWriter writer) { Writer = writer; }
public HttpResponseMessage changePassword([FromBody] JObject json) { var eventLogs = ""; try { /** * Description * Input * + phone: Số điện thoai khách hàng * + passwordCurrent: Mật khẩu hiện tại * + password: Mật khẩu mới * * Output * + Success: true/false * + Data: Mô tả kết quả trả về * */ // Get requested params var phone = (json.GetValue("phone").Value <string>() ?? "").Trim(); var passwordCurrent = (json.GetValue("passwordCurrent").Value <string>() ?? "").Trim(); var password = (json.GetValue("password").Value <string>() ?? "").Trim(); var customer = db.Customers.Where(r => r.phone.Equals(phone)).FirstOrDefault(); if (customer != null) { // Verify password var success = SaltedHash.Verify(customer.salt, customer.password, passwordCurrent); if (success) { // Assign new password var sh = new SaltedHash(password); customer.salt = sh.Salt; customer.password = sh.Hash; db.SaveChanges(); return(Request.CreateResponse(HttpStatusCode.OK, new { Success = true, Data = "Đổi mật khẩu thành công!" })); } else { // Wrong password return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = "Đổi mật khẩu thất bại! Mật khẩu hiện tại không đúng" })); } } else { // Customer not found return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = "Đổi mật khẩu thất bại! Khách hàng #" + phone + " không tồn tại trong hệ thống!" })); } } catch (Exception ex) { // set event logs eventLogs = "CustomerController - changePassword: " + ex.ToString(); return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = ex.ToString() })); } finally { // write event logs if (string.IsNullOrWhiteSpace(eventLogs) == false) { EventWriter.WriteEventLog(eventLogs); } } }
protected CSharpScriptBase() { console = new EventWriter(this); }
public HttpResponseMessage register([FromBody] JObject json) { var eventLogs = ""; try { /** * Description * * Input: * + phone: Số điện thoai khách hàng * + email: Địa chỉ email khách hàng * + address: Địa chỉ khách hàng * * Return: * + ReturnCode: 0 thành công (#0 mã lỗi) * + ReturnMessage: thông báo trả về * * */ // Get requested params var phone = (json.GetValue("phone").Value <string>() ?? "").Trim(); var password = (json.GetValue("password").Value <string>() ?? "").Trim(); var fullname = (json.GetValue("fullname").Value <string>() ?? "").Trim(); var email = (json.GetValue("email").Value <string>() ?? "").Trim(); // Validate customer info if (string.IsNullOrWhiteSpace(phone)) { return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = "Số điện thoại không được rỗng!" })); } if (password.Length < 6) { return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = "Độ dài mật khẩu tối thiểu 6 ký tự!" })); } // Hash password SaltedHash sh = new SaltedHash(password); var hash = sh.Hash; var salt = sh.Salt; // Save customer info var regCustResult = db.Database.SqlQuery <RegisterCustomerResult>(@"EXEC [dbo].[usp_registerCustomer] @phone, @password, @salt, @fullname, @email", new SqlParameter("phone", phone), new SqlParameter("password", hash), new SqlParameter("salt", salt), new SqlParameter("fullname", fullname), new SqlParameter("email", email)) .FirstOrDefault(); if (regCustResult != null) { var success = (regCustResult.ReturnCode == 0); // set event logs eventLogs = "Customer controller - register: \r\n" + json.ToString() + "\r\nReturnCode: " + regCustResult.ReturnCode + "\r\nReturnMessage" + regCustResult.ReturnMessage; return(Request.CreateResponse(HttpStatusCode.OK, new { Success = success, Data = regCustResult.ReturnMessage })); } else { // set event logs eventLogs = "Customer controller - register: \r\n" + json.ToString() + "\r\nReturnMessage: Đăng ký tài khoản thất bại! Có lỗi xảy ra trong quá trình đăng ký tài khoản"; return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = "Đăng ký tài khoản thất bại! Có lỗi xảy ra trong quá trình đăng ký tài khoản" })); } } catch (Exception ex) { // set event logs eventLogs = "CustomerController - register: " + ex.ToString(); return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = ex.ToString() })); } finally { // write event logs if (string.IsNullOrWhiteSpace(eventLogs) == false) { EventWriter.WriteEventLog(eventLogs); } } }
public ActionResult ListServiceDetails(string filter, int?serviceId, int?page) { filter = filter ?? ""; serviceId = serviceId ?? 0; page = page ?? 1; try { // Get service info var service = db.CarServices.Where(r => r.serviceId == serviceId).FirstOrDefault(); if (service != null) { var group = db.CarServiceGroups.Where(r => r.groupId == service.groupId).FirstOrDefault(); if (group != null) { // Get default pagesize var pageSize = int.Parse(ConfigurationManager.AppSettings["PAGE_SIZE"]); // Search service details var pFilter = new SqlParameter("filter", filter); var pServiceId = new SqlParameter("serviceId", serviceId); var pPageIndex = new SqlParameter("pageIndex", page); var pPageSize = new SqlParameter("pageSize", pageSize); var pItemCount = new SqlParameter("itemCount", System.Data.SqlDbType.Int, 4); pPageIndex.Direction = System.Data.ParameterDirection.InputOutput; pItemCount.Direction = System.Data.ParameterDirection.Output; var serviceDetails = db.Database.SqlQuery <CarServiceDetails>(@"EXEC [dbo].[usp_searchCarServiceDetails] @filter, @serviceId, @pageIndex OUT, @pageSize, @itemCount OUT", pFilter, pServiceId, pPageIndex, pPageSize, pItemCount).ToList(); // Generate service group options var totalItems = (int)pItemCount.Value; var pager = new Pager(totalItems, (int)pPageIndex.Value, pageSize); // Return view model var model = new ListServiceDetailsModel { Filter = filter, groupId = group.groupId, groupName = group.groupName, serviceId = service.serviceId, serviceName = service.serviceName, Items = serviceDetails, Pager = pager }; return(View(model)); } else { ModelState.AddModelError("", "Dịch vụ #" + service.serviceName + " không thuộc nhóm nào!"); } } else { ModelState.AddModelError("", "Không tìm thấy dịch vụ #" + serviceId + "!"); } } catch (Exception ex) { ModelState.AddModelError("", ex.ToString()); EventWriter.WriteEventLog("SystemController - ListServices: " + ex.ToString()); } return(View()); }
public HttpResponseMessage recoveryPassword([FromBody] JObject json) { var eventLogs = ""; try { /** * Description * Input * + phone: Số điện thoai khách hàng * + email: Địa chỉ email * * Output * + Thông tin customer * */ // Get requested params var phone = (json.GetValue("phone").Value <string>() ?? "").Trim(); var email = (json.GetValue("email").Value <string>() ?? "").Trim(); // Get customer var customer = db.Customers.Where(c => c.phone == phone).FirstOrDefault(); if (customer != null && !string.IsNullOrWhiteSpace(customer.email)) { // Validate user email if (String.Compare(customer.email, email, true) == 0) { // create random password String newpass = Membership.GeneratePassword(6, 0); SaltedHash sh = new SaltedHash(newpass); customer.salt = sh.Salt; customer.password = sh.Hash; db.SaveChanges(); // email new password to user string subject = "Khôi phục mật khẩu tài khoản"; string body = "<p><strong>Kính chào quý khách, </strong></p>"; body += "<p>Quý khách nhận được email này từ L.M.W vì quý khách hoặc ai đó đã có yêu cầu khôi phục mật khẩu tài khoản.</p>"; body += "<br />"; body += "<p>Sau đây là thông tin đăng nhập mới của bạn:</p>"; body += "<p>Tài khoản: <strong>" + phone + "</strong></p>"; body += "<p>Mật khẩu: <strong>" + newpass + "</strong></p>"; body += "<br />"; body += "<p>Bạn vui lòng đăng nhập lại ứng dụng với mật khẩu mới.</p>"; body += "<p>Chúc bạn một ngày tốt lành!</p>"; body += "<p>L.M.W</p>"; Emailer.sendMail(customer.email, customer.fullname, subject, body); return(Request.CreateResponse(HttpStatusCode.OK, new { Success = true, Data = "Khôi phục mật khẩu thành công!\r\nVui lòng kiểm tra email: " + customer.email + " để nhận mật khẩu mới" })); } else { return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = "Khôi phục mật khẩu thất bại! Địa chỉ email không khớp với địa chỉ email đã đăng ký. Vui lòng liên hệ email về [email protected] để được hỗ trợ!" })); } } else { return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = "Khôi phục mật khẩu thất bại! Khách hàng #" + phone + " không tồn tại trong hệ thống. Vui lòng liên hệ email [email protected] để được hỗ trợ!" })); } } catch (Exception ex) { // set event logs eventLogs = "CustomerController - recoveryPassword: " + ex.ToString(); return(Request.CreateResponse(HttpStatusCode.OK, new { Success = false, Data = ex.ToString() })); } finally { // write event logs if (string.IsNullOrWhiteSpace(eventLogs) == false) { EventWriter.WriteEventLog(eventLogs); } } }
public override async Task StreamEventsAsync(InputDefinition inputDefinition, EventWriter eventWriter) { var min = ((SingleValueParameter)inputDefinition.Parameters["min"]).ToDouble(); if (min == 1) { throw new InvalidOperationException(); } await eventWriter.QueueEventForWriting(new Event { Data = "Boris!" }); }