private static void AttachOrderMaster(SeedDataAccess seedDataAccess, string email, List <Seed> seedList) { Action <Dictionary <string, object>, Dictionary <string, object>, List <Seed> > preSaveAction = (d1, d2, l) => { string maxOrderNo = seedDataAccess.ExecuteScalarAsString(SqlResource.GetMaxOrderNumber); int maxNo = int.Parse(maxOrderNo); d1["OrderNo"] = maxNo + 1; }; Action <Dictionary <string, object>, Dictionary <string, object>, List <Seed> > postSaveAction = (d1, d2, l) => { var value = d1["OrderNo"]; List <SqlParameter> parms = new List <SqlParameter>(); parms.Add(new SqlParameter("value", value)); seedDataAccess.ExecuteScalar(SqlResource.SetMaxOrderNumber, parms); }; dynamic orderMaster = new ExpandoObject(); orderMaster.UserId = GetUserIdFromEmail(seedDataAccess, email); Seed seed = new Seed() { TableName = "OrderMaster", TableDict = SeedUtil.GetDictFromDynamicObject(orderMaster), PKeyColName = "Id", IsCustomIDGenerated = false, PKeyTagName = "order", PreSaveAction = preSaveAction, PostSaveAction = postSaveAction }; seedList.Add(seed); }
public async Task <object> InsertCreditCardAsync(dynamic obj) { dynamic result = new ExpandoObject(); Task <object> t = Task.Run <object>(() => { try { IDictionary <string, object> objDictionary = (IDictionary <string, object>)obj; if (objDictionary.ContainsKey("card") && (objDictionary.ContainsKey("email"))) { string email = objDictionary["email"].ToString(); dynamic card = objDictionary["card"]; List <Seed> seedList = new List <Seed>(); IDictionary <string, object> dict = SeedUtil.GetDictFromDynamicObject(card); dict["userId"] = Util.GetUserIdFromEmail(seedDataAccess, email); dict.Remove("isNew"); Seed seed = new Seed() { PKeyColName = "Id", PKeyTagName = "Card", IsCustomIDGenerated = false, TableName = "CreditCards", TableDict = dict }; object id = null; Action <Dictionary <string, object>, Dictionary <string, object>, List <Seed> > action = (d1, d2, s) => { id = d2["Card"]; }; seed.PostSaveAction = action; seedList.Add(seed); seedDataAccess.SaveSeeds(seedList); result.status = 200; result.success = true; result.id = id; } else { Util.SetError(result, 406, Resources.ErrInputDataWrong, Resources.ErrInputDataWrong); } } catch (Exception ex) { result = new ExpandoObject(); Util.SetError(result, 500, Resources.ErrInternalServerError, ex.Message); } return(result); }); result = await t; return(result); }
private static void AddUser() { var connString = "server=(local);Database=KistlerDB;Integrated Security=SSPI"; SeedDataAccess seedDataAccess = new SeedDataAccess(connString); dynamic user = new ExpandoObject(); var email = "*****@*****.**"; var hash = "abcd"; user.Email = email; user.PwdHash = hash; user.Role = "U"; var kvUser = new KVUser() { Email = email, PwdHash = hash, Role = 'U' }; Dictionary <string, object> kvUserDict = SeedUtil.GetDictFromObject(kvUser); Dictionary <string, object> userDict = SeedUtil.GetDictFromDynamicObject(user); var seed = new Seed() { TableName = "UserMaster", TableDict = userDict, //TableObject = "user", IsCustomIDGenerated = false, PKeyColName = "Id" }; List <Seed> seedList = new List <Seed>(); seedList.Add(seed); try { seedDataAccess.SaveSeeds(seedList); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
private static void AttachOrderDetails(dynamic order, List <Seed> seedList) { object[] orders = (object[])order; List <dynamic> orderList = orders.ToList(); KeyValuePair <string, string> kvDetails = new KeyValuePair <string, string>("OrderId", "order"); List <KeyValuePair <string, string> > kvListDetails = new List <KeyValuePair <string, string> >(); kvListDetails.Add(kvDetails); orderList.ForEach(x => { //x.OfferId = x.Id; //x.Id = null; Seed seed = new Seed() { PKeyColName = "Id", TableName = "OrderDetails", TableDict = SeedUtil.GetDictFromDynamicObject(x), IsCustomIDGenerated = false, DetailsTableColNameTagNamePairs = kvListDetails }; seedList.Add(seed); }); }
public static List <Seed> GetApproveRequestSeedList(SeedDataAccess seedDataAccess, dynamic objDictionary) { List <Seed> seedList = new List <Seed>(); JObject jObjDict = JObject.FromObject(objDictionary); JToken jBundle = jObjDict.SelectToken("orderBundle"); JToken orderMaster = jBundle.SelectToken("orderMaster"); JToken orderDetails = jBundle.SelectToken("orderDetails"); JToken orderImpDetails = jBundle.SelectToken("orderImpDetails"); JToken newCard = jBundle.SelectToken("newCard"); var userId = jObjDict.GetValue("userId").ToString(); #region OrderMaster Action <Dictionary <string, object>, Dictionary <string, object>, List <Seed> > preSaveAction = (d1, d2, l) => { string maxOrderNo = seedDataAccess.ExecuteScalarAsString(SqlResource.GetMaxOrderNumber); int maxNo = int.Parse(maxOrderNo); d1["OrderNo"] = maxNo + 1; }; Action <Dictionary <string, object>, Dictionary <string, object>, List <Seed> > postSaveAction = (d1, d2, l) => { var value = d1["OrderNo"]; List <SqlParameter> parms = new List <SqlParameter>(); parms.Add(new SqlParameter("value", value)); seedDataAccess.ExecuteScalar(SqlResource.SetMaxOrderNumber, parms); }; dynamic orderMasterObject = orderMaster.ToObject <dynamic>(); orderMasterObject.OrderNo = "1"; IDictionary <string, object> orderMasterDict = SeedUtil.GetDictFromDynamicObject(orderMasterObject); var seed = new Seed() { TableName = "OrderMaster", TableDict = orderMasterDict, IsCustomIDGenerated = false, PKeyColName = "Id", PKeyTagName = "order", PreSaveAction = preSaveAction, PostSaveAction = postSaveAction }; seedList.Add(seed); #endregion #region OrderDetails List <dynamic> orderDetailsList = orderDetails.ToList <dynamic>(); KeyValuePair <string, string> kvDetails = new KeyValuePair <string, string>("OrderId", "order"); List <KeyValuePair <string, string> > kvListDetails = new List <KeyValuePair <string, string> >(); kvListDetails.Add(kvDetails); orderDetailsList.ForEach(x => { var seedOrderDetails = new Seed() { PKeyColName = "Id", TableName = "OrderDetails", TableDict = SeedUtil.GetDictFromDynamicObject(x), IsCustomIDGenerated = false, DetailsTableColNameTagNamePairs = kvListDetails }; seedList.Add(seedOrderDetails); }); #endregion #region OrderImpDetails KeyValuePair <string, string> kvImpDetails = new KeyValuePair <string, string>("OrderId", "order"); List <KeyValuePair <string, string> > kvImpListDetails = new List <KeyValuePair <string, string> >(); kvImpListDetails.Add(kvImpDetails); object orderImpDetailsId = null; Action <Dictionary <string, object>, Dictionary <string, object>, List <Seed> > postSaveActionOrderImpDetails = (d1, d2, l) => { orderImpDetailsId = d2["orderImpDetails"]; }; var seedOrderImpDetails = new Seed() { PKeyColName = "Id", TableName = "OrderImpDetails", TableDict = SeedUtil.GetDictFromDynamicObject(orderImpDetails), IsCustomIDGenerated = false, DetailsTableColNameTagNamePairs = kvImpListDetails, PostSaveAction = postSaveActionOrderImpDetails, PKeyTagName = "orderImpDetails", }; seedList.Add(seedOrderImpDetails); #endregion if (newCard != null) //save new card in PaymentMethods table and store new cardId in orderImpDetails { var tableDict = SeedUtil.GetDictFromDynamicObject(newCard); tableDict.Remove("isSaveForLaterUse"); tableDict["userId"] = userId; tableDict["isDefault"] = true; Action <Dictionary <string, object>, Dictionary <string, object>, List <Seed> > preSaveActionNewCard = (d1, d2, l) => { List <SqlParameter> parms = new List <SqlParameter>(); parms.Add(new SqlParameter("userId", userId)); seedDataAccess.ExecuteScalar(SqlResource.PaymentMethodsResetDefault, parms); }; Action <Dictionary <string, object>, Dictionary <string, object>, List <Seed> > postSaveActionNewCard = (d1, d2, l) => { var cardId = d2["card"]; List <SqlParameter> parms = new List <SqlParameter>(); parms.Add(new SqlParameter("cardId", cardId)); parms.Add(new SqlParameter("orderImpDetailsId", orderImpDetailsId)); seedDataAccess.ExecuteScalar(SqlResource.UpdateCardIdInOrderImpDetails, parms); }; var seedNewCard = new Seed() { PKeyColName = "Id", TableName = "PaymentMethods", TableDict = tableDict, IsCustomIDGenerated = false, PostSaveAction = postSaveActionNewCard, PreSaveAction = preSaveActionNewCard, PKeyTagName = "card", }; seedList.Add(seedNewCard); } return(seedList); }
private static void SaveOrder() { var connString = "server=(local);Database=KistlerDB;Integrated Security=SSPI"; SeedDataAccess seedDataAccess = new SeedDataAccess(connString); var orderMaster = GetOrderMasterData(); var orderDetails = GetOrderDetailsData(); List <Seed> seedList = new List <Seed>(); //KeyValuePair<string, string> kvMaster = new KeyValuePair<string, string>("Id","OrderId"); //List<KeyValuePair<string, string>> kvListMaster = new List<KeyValuePair<string, string>>(); //kvListMaster.Add(kvMaster); KeyValuePair <string, string> kvDetails = new KeyValuePair <string, string>("OrderId", "order"); List <KeyValuePair <string, string> > kvListDetails = new List <KeyValuePair <string, string> >(); kvListDetails.Add(kvDetails); var getMaxOrderNumberSql = "select max(IntValue) from Setup where MKey = 'MaxOrderNumber'"; var setMaxOrderNumberSql = "update Setup set IntValue = @value where MKey = 'MaxOrderNumber'"; Action <Dictionary <string, object>, Dictionary <string, object>, List <Seed> > preSaveAction = (d1, d2, l) => { string maxOrderNo = seedDataAccess.ExecuteScalarAsString(getMaxOrderNumberSql); int maxNo = int.Parse(maxOrderNo); d1["OrderNo"] = maxNo + 1; }; Action <Dictionary <string, object>, Dictionary <string, object>, List <Seed> > postSaveAction = (d1, d2, l) => { var value = d1["OrderNo"]; List <SqlParameter> parms = new List <SqlParameter>(); parms.Add(new SqlParameter("value", value)); seedDataAccess.ExecuteScalar(setMaxOrderNumberSql, parms); }; Seed orderMasterSeed = new Seed() { TableName = "OrderMaster", TableDict = SeedUtil.GetDictFromDynamicObject(orderMaster), PKeyColName = "Id", IsCustomIDGenerated = false, PKeyTagName = "order", PreSaveAction = preSaveAction, PostSaveAction = postSaveAction }; seedList.Add(orderMasterSeed); orderDetails.ForEach(x => { Seed details = new Seed() { PKeyColName = "Id", TableName = "OrderDetails", TableDict = SeedUtil.GetDictFromDynamicObject(x), IsCustomIDGenerated = false, DetailsTableColNameTagNamePairs = kvListDetails }; seedList.Add(details); }); seedDataAccess.SaveSeeds(seedList); }
public async Task <object> UpdateOrInsertAddressesAsync(dynamic obj) { dynamic result = new ExpandoObject(); Task <object> t = Task.Run <object>(() => { try { IDictionary <string, object> objDictionary = (IDictionary <string, object>)obj; if (objDictionary.ContainsKey("addresses") && (objDictionary.ContainsKey("email"))) { string email = objDictionary["email"].ToString(); dynamic addresses = objDictionary["addresses"]; foreach (var address in addresses) { IDictionary <string, object> dict = SeedUtil.GetDictFromDynamicObject(address); if (dict.ContainsKey("id")) { List <SqlParameter> parms = new List <SqlParameter>(); parms.Add(new SqlParameter("address1", address.address1)); parms.Add(new SqlParameter("zip", address.zip)); parms.Add(new SqlParameter("city", address.city)); parms.Add(new SqlParameter("street", address.street)); parms.Add(new SqlParameter("isDefault", address.isDefault)); parms.Add(new SqlParameter("id", address.id)); var i = seedDataAccess.ExecuteNonQuery(SqlResource.UpdateAddress, parms); if (i == 0) { Exception exception = new Exception(); exception.Data.Add("501", Resources.ErrUpdateError); throw exception; } } else { dict["userId"] = Util.GetUserIdFromEmail(seedDataAccess, email); dict.Remove("isEdit"); dict.Remove("isDirty"); dict.Remove("isNew"); List <Seed> saveProfileSeedList = new List <Seed>(); Seed seed = new Seed() { PKeyColName = "Id", IsCustomIDGenerated = false, TableName = "ShippingAddresses", TableDict = dict }; saveProfileSeedList.Add(seed); seedDataAccess.SaveSeeds(saveProfileSeedList); } } result.status = 200; result.success = true; } else { Util.SetError(result, 406, Resources.ErrInputDataWrong, Resources.ErrInputDataWrong); } } catch (Exception ex) { result = new ExpandoObject(); Util.SetError(result, 520, Resources.ErrGenericError, ex.Message); } return(result); }); result = await t; return(result); }
public async Task <object> UpdateOrInsertProfileAsync(dynamic obj) { dynamic result = new ExpandoObject(); Task <object> t = Task.Run <object>(() => { try { IDictionary <string, object> objDictionary = (IDictionary <string, object>)obj; if (objDictionary.ContainsKey("profile") && (objDictionary.ContainsKey("email"))) { string email = objDictionary["email"].ToString(); dynamic profile = objDictionary["profile"]; bool isUpdate = (bool)objDictionary["isUpdate"]; if (isUpdate) { List <SqlParameter> parms = new List <SqlParameter>(); parms.Add(new SqlParameter("firstName", profile.firstName)); parms.Add(new SqlParameter("lastName", profile.lastName)); parms.Add(new SqlParameter("phone", profile.phone)); parms.Add(new SqlParameter("birthDay", profile.birthDay)); parms.Add(new SqlParameter("mailingAddress1", profile.mailingAddress1)); parms.Add(new SqlParameter("mailingAddress2", profile.mailingAddress2)); parms.Add(new SqlParameter("mailingCity", profile.mailingCity)); parms.Add(new SqlParameter("mailingState", profile.mailingState)); parms.Add(new SqlParameter("mailingZip", profile.mailingZip)); parms.Add(new SqlParameter("id", profile.id)); var i = seedDataAccess.ExecuteNonQuery(SqlResource.UpdateProfile, parms); if (i == 0) { Exception exception = new Exception(); exception.Data.Add("501", Resources.ErrUpdateError); throw exception; } } else { profile.UserId = Util.GetUserIdFromEmail(seedDataAccess, email); List <Seed> saveProfileSeedList = new List <Seed>(); Seed seed = new Seed() { PKeyColName = "Id", IsCustomIDGenerated = false, TableName = "UserProfiles", TableDict = SeedUtil.GetDictFromDynamicObject(profile) }; saveProfileSeedList.Add(seed); seedDataAccess.SaveSeeds(saveProfileSeedList); } result.status = 200; result.success = true; } else { Util.SetError(result, 406, Resources.ErrInputDataWrong, Resources.ErrInputDataWrong); } } catch (Exception ex) { result = new ExpandoObject(); if (ex.Data.Keys.Count > 0) { var entryList = ex.Data.Cast <DictionaryEntry>(); int errorNo = 0; int.TryParse(entryList.ElementAt(0).Key.ToString(), out errorNo); if (errorNo == 0) { errorNo = 520; } //int errorNo = int.Parse(entryList.ElementAt(0).Key.ToString()); string errorMessage = entryList.ElementAt(0).Value.ToString(); Util.SetError(result, errorNo, errorMessage, errorMessage); } else { Util.SetError(result, 500, Resources.ErrInternalServerError, ex.Message); } } return(result); }); result = await t; return(result); }