/// <summary> /// Imports a category. /// </summary> /// <param name="args">The args.</param> /// <param name="dupeMode">if set to <c>true</c> [dupe mode].</param> /// <param name="cn">SQL Connection.</param> /// <param name="trns">SQL Transaction.</param> /// <returns></returns> public static List<object> ImportCategory( Dictionary<string, object> args, bool dupeMode, SqlConnection cn, SqlTransaction trns ) { List<object> j = new List<object>(); /* must contain at least the primary key */ if( ( !args.ContainsKey( "categoryName" ) ) || ( !args.ContainsKey( "itemNumber" ) ) ) { return j; } if( args[ "itemNumber" ].ToString() == "" || args[ "itemNumber" ] == null ) { return j; } try { using( SqlCommand cmd = new SqlCommand( @"insertCategory @categoryName,@itemNumber", cn, trns ) ) { cmd.Parameters.Add( "@categoryName", SqlDbType.VarChar ).Value = args.KeyOrDefault( "categoryName", "", true ); cmd.Parameters.Add( "@itemNumber", SqlDbType.VarChar ).Value = args.KeyOrDefault( "itemNumber", "", true ); using( SqlDataReader d = cmd.ExecuteReader() ) { if( d.HasRows ) { return ( List<object> )d.GetJsonArray( false )[ 0 ]; } } } } catch( Exception e ) { String.Format( "importCategory threw an exception ==> {0}", e.Message ).Debug( 0 ); return j; } return j; }
/// <summary> /// Adds a reply to the reply or Blog matching the replyId key. /// Uses a SQL transaction to roll back changes if the boolean key "preview" /// is true, but still shows what would have happened. /// </summary> /// <param name="args">The argument dictionary { /// replyId /// email /// subject /// rating /// userId /// comment /// addedOn /// parentId /// reference /// disabled /// approves /// disapproves /// flaggedInappropriate /// message /// }</param> /// <returns>Dictionary containing {error:0,desc:"",subject:"blah",message:"blah"} when successfull or the error. </returns> public static Dictionary<string, object> AddReply(Dictionary<string, object> args) { ("FUNCTION /w SP addReply").Debug(10); Dictionary<string, object> j = new Dictionary<string, object>(); Session session = null; bool preview = false; if(args.ContainsKey("sessionId")) { session = new Session(Main.Site, new Guid((string)args["sessionId"])); } else { session = Main.GetCurrentSession(); } using(SqlConnection cn = Site.CreateConnection(true, true)) { cn.Open(); using(SqlTransaction trans = cn.BeginTransaction("reply")) { if(args.ContainsKey("preview")) { preview = (bool)args["preview"]; } string replyId = Guid.NewGuid().ToString(); Guid parentId; if(args.ContainsKey("replyId")) { replyId = args["replyId"].ToString(); } if(args.ContainsKey("parentId")) { parentId = new Guid(args["parentId"].ToString()); } else { j.Add("error", 2); j.Add("description", "Key parentId is not present."); return j; } /* email the Blog to which this reply belongs, if they like that sort of thing. */ //int nestCount = 0; /* BlogEntry entry = null; while(entry == null) { entry = Main.Site.Blogs.AllEntries.Find(delegate(BlogEntry be) { return be.Id == parentId; }); if(entry == null) { Reply reply = Main.Site.Replies.List.Find(delegate(Commerce.Reply rp) { return rp.Id == parentId; }); if(reply == null) { j.Add("error", 4); j.Add("description", "Could not find parent.."); return j; } // step up until the parent is a Blog parentId = reply.ParentId; } nestCount++; } if(!entry.AllowComments) { j.Add("error", 5); j.Add("description", "This Blog does not allow comments."); return j; } */ string email = args.KeyOrDefault("email", "").ToString(); string subject = args.KeyOrDefault("subject", "").ToString(); string rating = args.KeyOrDefault("rating", "").ToString(); string comment = args.KeyOrDefault("message", "").ToString(); string addedOn = args.KeyOrDefault("addedOn", DateTime.Now.ToString()).ToString(); string reference = args.KeyOrDefault("reference", "").ToString(); /* accept all messages instantly in test mode */ string disabled = args.KeyOrDefault("disabled", false).ToString(); string approves = args.KeyOrDefault("approves", 0).ToString(); string disapproves = args.KeyOrDefault("disapproves", 0).ToString(); string flaggedInappropriate = args.KeyOrDefault("flaggedInappropriate", false).ToString(); string commandText = @"dbo.insertReply @replyId, @email, @subject, @rating, @userId, @comment, @addedOn, @parentId, @reference, @disabled, @approves, @disapproves, @flaggedInappropriate"; using(SqlCommand cmd = new SqlCommand(commandText, cn, trans)) { cmd.Parameters.Add("@replyId", SqlDbType.UniqueIdentifier).Value = new Guid(replyId); cmd.Parameters.Add("@email", SqlDbType.VarChar).Value = email; cmd.Parameters.Add("@subject", SqlDbType.VarChar).Value = subject; cmd.Parameters.Add("@rating", SqlDbType.VarChar).Value = rating; cmd.Parameters.Add("@userId", SqlDbType.Int).Value = session.UserId; cmd.Parameters.Add("@comment", SqlDbType.VarChar).Value = comment; cmd.Parameters.Add("@addedOn", SqlDbType.DateTime).Value = Convert.ToDateTime(addedOn); cmd.Parameters.Add("@parentId", SqlDbType.UniqueIdentifier).Value = new Guid(parentId.ToString()); cmd.Parameters.Add("@reference", SqlDbType.VarChar).Value = reference; cmd.Parameters.Add("@disabled", SqlDbType.Bit).Value = Convert.ToBoolean(disabled); cmd.Parameters.Add("@approves", SqlDbType.Int).Value = Convert.ToInt32(approves); cmd.Parameters.Add("@disapproves", SqlDbType.Int).Value = Convert.ToInt32(disapproves); cmd.Parameters.Add("@flaggedInappropriate", SqlDbType.Int).Value = 0; cmd.ExecuteNonQuery(); j.Add("subject", args["subject"].ToString()); j.Add("message", args["message"].ToString()); j.Add("replyId", replyId); if(preview) { trans.Rollback(); } else { trans.Commit(); } } /* if(!preview) { Main.Site.Replies = new Commerce.Replies(Main.Site); Main.Site.Blogs = new Commerce.Blogs(Main.Site); Guid gReplyId = new Guid(replyId); Commerce.Reply newReply = Main.Site.Replies.List.Find(delegate(Commerce.Reply rp) { return rp.Id == gReplyId; }); if(entry.EmailUpdates) { CreateEmailEventArgs emailArgs = new CreateEmailEventArgs("commentAdded", Main.Site.site_operator_email, entry.Author.Email, Main.Site.site_log_email, entry.Author, session, newReply, entry); DefaultEmails.CommentAdded(ref emailArgs); Main.Site.raiseOncreateemail(emailArgs); SendEmailArgResult(emailArgs, cn, null); } } */ j.Add("blogEntryId", parentId); j.Add("error", 0); j.Add("description", ""); } } return j; }
/// <summary> /// Imports an item. /// </summary> /// <param name="args">The item arguments.</param> /// <param name="dupeMode">if set to <c>true</c> [dupe mode].</param> /// <param name="cn">SQL connection.</param> /// <param name="trns">SQL transaction.</param> /// <returns>List of item imported.</returns> public static List<object> ImportItem( Dictionary<string, object> args, bool dupeMode, SqlConnection cn, SqlTransaction trns ) { List<object> j = new List<object>(); /* must contain at least the primary key */ if( !args.ContainsKey( "itemNumber" ) ) { return j; } if( args[ "itemNumber" ].ToString() == "" || args[ "itemNumber" ] == null ) { return j; } try { string commandText = @"dbo.insertItem @itemNumber,@displayPrice,@reorderPoint,@BOMOnly,@itemHTML,@price, @salePrice,@wholeSalePrice, @isOnSale,@description,@shortCopy, @productCopy,@weight,@quantifier, @shortDescription, @freeShipping, @formName,@keywords, @searchPriority, @workCreditValue, @noTax, @deleted, @removeAfterPurchase,@parentItemNumber,@allowPreorders, @inventoryOperator, @inventoryRestockOnFlagId,@itemIsConsumedOnFlagId,@inventoryDepletesOnFlagId,@revenueAccount, @ratio,@highThreshold,@expenseAccount,@inventoryAccount, @COGSAccount,@SKU,@itemType,@averageCost,@dupeMode"; using( SqlCommand cmd = new SqlCommand( commandText, cn, trns ) ) { cmd.Parameters.Add( "@itemNumber", SqlDbType.Variant ).Value = args.KeyOrDefault( "itemNumber", "", dupeMode ); cmd.Parameters.Add( "@displayPrice", SqlDbType.Variant ).Value = args.KeyOrDefault( "displayPrice", "", dupeMode ); cmd.Parameters.Add( "@reorderPoint", SqlDbType.Variant ).Value = args.KeyOrDefault( "reorderPoint", 10, dupeMode ); cmd.Parameters.Add( "@BOMOnly", SqlDbType.Variant ).Value = args.KeyOrDefault( "BOMOnly", true, dupeMode ); cmd.Parameters.Add( "@itemHTML", SqlDbType.Variant ).Value = args.KeyOrDefault( "itemHTML", "", dupeMode ); cmd.Parameters.Add( "@price", SqlDbType.Variant ).Value = args.KeyOrDefault( "price", 0, dupeMode ); cmd.Parameters.Add( "@salePrice", SqlDbType.Variant ).Value = args.KeyOrDefault( "salePrice", 0, dupeMode ); cmd.Parameters.Add( "@wholeSalePrice", SqlDbType.Variant ).Value = args.KeyOrDefault( "wholeSalePrice", 0, dupeMode ); cmd.Parameters.Add( "@isOnSale", SqlDbType.Variant ).Value = args.KeyOrDefault( "isOnSale", false, dupeMode ); cmd.Parameters.Add( "@description", SqlDbType.Variant ).Value = args.KeyOrDefault( "description", "", dupeMode ); cmd.Parameters.Add( "@shortCopy", SqlDbType.Variant ).Value = args.KeyOrDefault( "shortCopy", "", dupeMode ); cmd.Parameters.Add( "@productCopy", SqlDbType.Variant ).Value = args.KeyOrDefault( "productCopy", "", dupeMode ); cmd.Parameters.Add( "@weight", SqlDbType.Variant ).Value = args.KeyOrDefault( "weight", 1, dupeMode ); cmd.Parameters.Add( "@quantifier", SqlDbType.Variant ).Value = args.KeyOrDefault( "quantifier", "Each", dupeMode ); cmd.Parameters.Add( "@shortDescription", SqlDbType.Variant ).Value = args.KeyOrDefault( "shortDescription", "", dupeMode ); cmd.Parameters.Add( "@freeShipping", SqlDbType.Variant ).Value = args.KeyOrDefault( "freeShipping", false, dupeMode ); cmd.Parameters.Add( "@formName", SqlDbType.Variant ).Value = args.KeyOrDefault( "formName", "NO FORM", dupeMode ); cmd.Parameters.Add( "@keywords", SqlDbType.Variant ).Value = args.KeyOrDefault( "keywords", "", dupeMode ); cmd.Parameters.Add( "@searchPriority", SqlDbType.Variant ).Value = args.KeyOrDefault( "searchPriority", 0, dupeMode ); cmd.Parameters.Add( "@workCreditValue", SqlDbType.Variant ).Value = args.KeyOrDefault( "workCreditValue", 0, dupeMode ); cmd.Parameters.Add( "@noTax", SqlDbType.Variant ).Value = args.KeyOrDefault( "noTax", false, dupeMode ); cmd.Parameters.Add( "@deleted", SqlDbType.Variant ).Value = args.KeyOrDefault( "deleted", false, dupeMode ); cmd.Parameters.Add( "@removeAfterPurchase", SqlDbType.Variant ).Value = args.KeyOrDefault( "removeAfterPurchase", false, dupeMode ); cmd.Parameters.Add( "@parentItemNumber", SqlDbType.Variant ).Value = args.KeyOrDefault( "parentItemNumber", "", dupeMode ); cmd.Parameters.Add( "@allowPreorders", SqlDbType.Variant ).Value = args.KeyOrDefault( "allowPreorders", Main.Site.new_item_allowPreorders, dupeMode ); cmd.Parameters.Add( "@inventoryOperator", SqlDbType.Variant ).Value = args.KeyOrDefault( "inventoryOperator", Main.Site.default_inventoryOperator, dupeMode ); cmd.Parameters.Add( "@inventoryRestockOnFlagId", SqlDbType.Variant ).Value = args.KeyOrDefault( "inventoryRestockOnFlagId", Main.Site.default_inventoryRestockOnFlagId, dupeMode ); cmd.Parameters.Add( "@itemIsConsumedOnFlagId", SqlDbType.Variant ).Value = args.KeyOrDefault( "itemIsConsumedOnFlagId", Main.Site.default_itemIsConsumedOnFlagId, dupeMode ); cmd.Parameters.Add( "@inventoryDepletesOnFlagId", SqlDbType.Variant ).Value = args.KeyOrDefault( "inventoryDepletesOnFlagId", Main.Site.default_inventoryDepletesOnFlagId, dupeMode ); cmd.Parameters.Add( "@revenueAccount", SqlDbType.Variant ).Value = args.KeyOrDefault( "revenueAccount", Main.Site.default_revenueAccount, dupeMode ); cmd.Parameters.Add( "@ratio", SqlDbType.Variant ).Value = args.KeyOrDefault( "ratio", 1, dupeMode ); cmd.Parameters.Add( "@highThreshold", SqlDbType.Variant ).Value = args.KeyOrDefault( "highThreshold", 500, dupeMode ); cmd.Parameters.Add( "@expenseAccount", SqlDbType.Variant ).Value = args.KeyOrDefault( "expenseAccount", Main.Site.default_expenseAccount, dupeMode ); cmd.Parameters.Add( "@inventoryAccount", SqlDbType.Variant ).Value = args.KeyOrDefault( "inventoryAccount", Main.Site.default_inventoryAccount, dupeMode ); cmd.Parameters.Add( "@COGSAccount", SqlDbType.Variant ).Value = args.KeyOrDefault( "COGSAccount", Main.Site.default_inventoryCOGSAccount, dupeMode ); cmd.Parameters.Add( "@SKU", SqlDbType.Variant ).Value = args.KeyOrDefault( "SKU", "", dupeMode ); cmd.Parameters.Add( "@itemType", SqlDbType.Variant ).Value = args.KeyOrDefault( "itemType", 0, dupeMode ); cmd.Parameters.Add( "@averageCost", SqlDbType.Variant ).Value = args.KeyOrDefault( "averageCost", 0, dupeMode ); cmd.Parameters.Add( "@dupeMode", SqlDbType.Int ).Value = Utilities.Iif( dupeMode, 0, 1 ); using( SqlDataReader d = cmd.ExecuteReader() ) { if( d.HasRows ) { return ( List<object> )d.GetJsonArray( false )[ 0 ]; } } } return j; } catch( Exception e ) { String.Format( "Immport item threw an exception ==> {0}", e.Message ).Debug( 0 ); return j; } }