private static Logger Configure(CompositeLogger aLogger, ConfigLogger aConfigLogger, CompositeLoggerElement aCompLoggerElement) { Configure((Logger)aLogger, aConfigLogger, aCompLoggerElement); foreach (CompositeLoggerElement element in aCompLoggerElement.CompositeLoggers) if (element.IsConfiguredForThisMachine()) { var logger = new CompositeLogger(); aLogger.AddLogger(element.Name, Configure(logger, Instance, element)); } foreach (FileLoggerElement element in aCompLoggerElement.FileLoggers) if (element.IsConfiguredForThisMachine()) { var logger = new FileLogger(element.FileName); logger.FileName = element.FileName; aLogger.AddLogger(element.Name, Configure(logger, Instance, element));//, section)); } foreach (RollingDateFileLoggerElement element in aCompLoggerElement.RollingDateFileLoggers) if (element.IsConfiguredForThisMachine()) { var logger = RollingFileLogger.NewRollingDateFileLogger(element.FormattedFileName); aLogger.AddLogger(element.Name, Configure(logger, Instance, element));//, section)); } foreach (RollingSizeFileLoggerElement element in aCompLoggerElement.RollingSizeFileLoggers) if (element.IsConfiguredForThisMachine()) { var logger = RollingFileLogger.NewRollingSizeFileLogger(element.FileName, element.MaxSize); aLogger.AddLogger(element.Name, Configure(logger, Instance, element));//, section)); } foreach (EmailLoggerElement element in aCompLoggerElement.EmailLoggers) if (element.IsConfiguredForThisMachine()) { var logger = new EmailLogger(new System.Net.Mail.SmtpClient(element.SmtpHost), element.From, element.To, element.Subject); aLogger.AddLogger(element.Name, Configure(logger, Instance, element));//, section)); } foreach (SocketLoggerElement element in aCompLoggerElement.SocketLoggers) if (element.IsConfiguredForThisMachine()) { var logger = new SerialSocketLogger(element.Host, element.Port); aLogger.AddLogger(element.Name, Configure(logger, Instance, element));//, section)); } foreach(ConsoleLoggerElement element in aCompLoggerElement.ConsoleLoggers) if (element.IsConfiguredForThisMachine()) { var logger = TextWriterLogger.NewConsoleLogger(); aLogger.AddLogger(element.Name, Configure(logger, Instance, element)); } foreach(EventLogLoggerElement element in aCompLoggerElement.EventLogLoggers) if (element.IsConfiguredForThisMachine()) { var logger = new EventLogLogger(new System.Diagnostics.EventLog(element.LogName, Environment.MachineName, aConfigLogger.Application)); aLogger.AddLogger(element.Name, Configure(logger, Instance, element)); } return aLogger; }
public bool PutOrder(OrderMessage newOrder) { Logger eventLog = new EventLogLogger(); try { // Läs användarens ID string userName = Thread.CurrentPrincipal.Identity.Name.Split('\\')[1]; // Logga begäran eventLog.LogInfo(String.Format("User: {0} is executing PutOrder()", userName)); // Logga objektet (diagnostiskt) eventLog.LogInfo(String.Format("newOrder object: {0}", newOrder.ToString())); // Instantiera databasklasser och kommandon SqlConnection databaseConnection = new SqlConnection("Server=localhost;database=AnderssonLink;Integrated Security=True"); SqlCommand insertCommand = new SqlCommand("dbo.InsertOrder", databaseConnection); insertCommand.CommandType = CommandType.StoredProcedure; // Sätt alla parametrar SqlParameter senderParameter = new SqlParameter("@Sender", DbType.String); senderParameter.Value = newOrder.Sender; SqlParameter recipientParameter = new SqlParameter("@Recipient", DbType.String); recipientParameter.Value = newOrder.Recipient; SqlParameter itemNumberParameter = new SqlParameter("@ItemNumber", DbType.String); itemNumberParameter.Value = newOrder.ItemNumber; SqlParameter itemDescriptionParameter = new SqlParameter("@ItemDescription", DbType.String); itemDescriptionParameter.Value = newOrder.ItemDescription; SqlParameter orderDateParameter = new SqlParameter("@OrderDate", DbType.Date); orderDateParameter.Value = newOrder.OrderDate; SqlParameter deliveryDateParameter = new SqlParameter("@DeliveryDate", DbType.Date); deliveryDateParameter.Value = newOrder.DeliveryDate; SqlParameter quantityParameter = new SqlParameter("@Quantity", DbType.Int32); quantityParameter.Value = newOrder.Quantity; SqlParameter priceParameter = new SqlParameter("@Price", DbType.Int32); priceParameter.Value = newOrder.Price; SqlParameter currencyParameter = new SqlParameter("@Currency", DbType.StringFixedLength); currencyParameter.Value = newOrder.Currency; SqlParameter textParameter = new SqlParameter("@Text", DbType.String); textParameter.Value = newOrder.Text; SqlParameter returnValueParameter = new SqlParameter("@Return_Value", DbType.Boolean); returnValueParameter.Direction = ParameterDirection.ReturnValue; // Lägg till parametrarna till kommandot insertCommand.Parameters.Add(senderParameter); insertCommand.Parameters.Add(recipientParameter); insertCommand.Parameters.Add(itemNumberParameter); insertCommand.Parameters.Add(itemDescriptionParameter); insertCommand.Parameters.Add(orderDateParameter); insertCommand.Parameters.Add(deliveryDateParameter); insertCommand.Parameters.Add(quantityParameter); insertCommand.Parameters.Add(priceParameter); insertCommand.Parameters.Add(currencyParameter); insertCommand.Parameters.Add(textParameter); insertCommand.Parameters.Add(returnValueParameter); // Logga anrop till databas eventLog.LogInfo(String.Format("Database call \"{0}\" is about to be executed.", insertCommand.CommandText)); // Exekvera SQL-query databaseConnection.Open(); insertCommand.ExecuteNonQuery(); // Koppla ifrån databasen databaseConnection.Close(); // Logga databasstängning eventLog.LogInfo(String.Format("Database connection has been closed.")); // Hämta returkod / felkod int returnCode = (int)returnValueParameter.Value; // Hantera felkod if (returnCode != 0) { throw new Exception("Database call failed."); } else { // Logga success eventLog.LogInfo(String.Format("PutOrder() successfully executed by user {0}", userName)); return true; } } catch (Exception ex) { // Logga fel eventLog.LogError(String.Format("PutOrder() failed. Error message: {0}", ex.Message)); return false; } }
public bool DeleteOrder(int orderId) { Logger eventLog = new EventLogLogger(); try { // Läs användarens ID string userName = Thread.CurrentPrincipal.Identity.Name.Split('\\')[1]; // Logga begäran eventLog.LogInfo(String.Format("User: {0} is executing DeleteOrder({1})", userName, orderId)); // Generera SQL-query SqlConnection databaseConnection = new SqlConnection("Server=localhost;database=AnderssonLink;Integrated Security=True"); SqlCommand deleteCommand = new SqlCommand("dbo.DeleteOrder", databaseConnection); deleteCommand.CommandType = CommandType.StoredProcedure; SqlParameter orderIdParameter = new SqlParameter("@OrderId", DbType.Int32); orderIdParameter.Value = orderId; SqlParameter recipientParameter = new SqlParameter("@Recipient", DbType.String); recipientParameter.Value = userName; SqlParameter returnValueParameter = new SqlParameter("@Return_Value", DbType.Boolean); returnValueParameter.Direction = ParameterDirection.ReturnValue; deleteCommand.Parameters.Add(orderIdParameter); deleteCommand.Parameters.Add(recipientParameter); deleteCommand.Parameters.Add(returnValueParameter); // Logga anrop till databas eventLog.LogInfo(String.Format("Database call {0} is about to be executed.", deleteCommand)); // Exekvera SQL-query databaseConnection.Open(); deleteCommand.ExecuteNonQuery(); // Koppla ifrån databasen databaseConnection.Close(); // Logga databasstängning eventLog.LogInfo(String.Format("Database connection has been closed.")); // Hämta returkod / felkod int returnCode = (int)returnValueParameter.Value; // Hantera felkod if (returnCode != 0) { throw new Exception("Database call failed."); } else { // Logga success eventLog.LogInfo(String.Format("DeleteOrder() successfully executed by user {0}", userName)); // Allt fungerade return true; } } catch (Exception ex) { // Logga felet eventLog.LogError(String.Format("DeleteOrder() failed. Error message: {0}", ex.Message)); return false; } }
public OrderMessage[] GetOrders() { Logger eventLog = new EventLogLogger(); try { // Läs användarens ID string userName = Thread.CurrentPrincipal.Identity.Name.Split('\\')[1]; // Logga begäran eventLog.LogInfo(String.Format("User: {0} is executing GetOrders()", userName)); // Instantiera dataklasser SqlConnection databaseConnection = new SqlConnection("Server=localhost;database=AnderssonLink;Integrated Security=True"); SqlParameter userNameParam = new SqlParameter("@userNameParam", SqlDbType.NVarChar, 50); userNameParam.Value = userName; SqlCommand selectCommand = new SqlCommand("SELECT * FROM ORDERS WHERE Recipient = @userNameParam", databaseConnection); selectCommand.Parameters.Add(userNameParam); SqlDataAdapter dataAdapter = new SqlDataAdapter(selectCommand); DataSet orderMessagesDataSet = new DataSet(); // Logga anrop till databas eventLog.LogInfo(String.Format("Database call {0} is about to be executed.", selectCommand)); // Öppna databasen och hämta data databaseConnection.Open(); dataAdapter.Fill(orderMessagesDataSet); // Koppla ifrån databasen databaseConnection.Close(); // Logga databasstängning eventLog.LogInfo(String.Format("Database connection has been closed.")); // Read out all objects from database List<OrderMessage> orderMessages = new List<OrderMessage>(); foreach (DataRow order in orderMessagesDataSet.Tables[0].Rows) { orderMessages.Add(new OrderMessage(order)); } // Returnera data return orderMessages.ToArray(); } catch (Exception ex) { // Logga felet eventLog.LogError(String.Format("GetOrders() failed. Error message: {0}", ex.Message)); return null; } }