public static string ExchangeKmhInOrders(List<Guid> orderArticles, DateTime timeStamp, Guid prodNomenId, TechnDatesSpeciality speciality) { using (ProductProvider provider = new ProductProvider()) { var dates = from date in provider.TechnDates where orderArticles.Contains(date.OrderArticleID) && date._dictNomenID == prodNomenId select date; foreach (var date in dates) { switch (speciality) { case TechnDatesSpeciality.Main: date.gen_date = timeStamp.ToLocalTime(); break; case TechnDatesSpeciality.Svar: date.svar_date = timeStamp.ToLocalTime(); break; case TechnDatesSpeciality.Him: date.him_date = timeStamp.ToLocalTime(); break; case TechnDatesSpeciality.Techn: date.techn_date = timeStamp.ToLocalTime(); break; } } provider.SubmitChanges(); } return new PostResult("Ok", 0).ToString(); }
protected void Page_Load(object sender, EventArgs e) { using (ProductProvider provider = new ProductProvider()) { Guid uid = new Guid(Request["uid"]); //List<Aspect.Domain.Configuration> confs = provider.Configurations.Where(c => c.ProductID == uid).ToList(); //bvv120420 /* var s = from confs0 in provider.Configurations join pp in provider.ProductProperties on confs0.ProductOwnerID equals pp.ProductID where confs0.ProductID == uid && pp.PropertyID == new Guid("BBE170B0-28E4-4738-B365-1038B03F4552") && pp.Value == "1" select confs0;//bvv120420 * * * * * * List<Aspect.Domain.Configuration> confs = s.ToList<Aspect.Domain.Configuration>(); //bvv120420 */ var s = from confs0 in provider.Configurations join pp in provider.ProductProperties on confs0.ProductOwnerID equals pp.ProductID join p in provider.Products on confs0.ProductOwnerID equals p.ID join n in provider._dictNomens on p._dictNomenID equals n.ID where confs0.ProductID == uid && pp.PropertyID == new Guid("BBE170B0-28E4-4738-B365-1038B03F4552") && pp.Value == "1" orderby n.superpole select confs0;//bvv120420 List<Aspect.Domain.Configuration> confs = s.OrderBy(c=>c.Product1._dictNomen.superpole).ToList<Aspect.Domain.Configuration>(); //bvv120420 List<Guid> ownerProdsId = confs.DistinctBy(c => c.ProductOwnerID).Select(c => c.ProductOwnerID).ToList(); List<Product> ownerProds = provider.Products.Where(p => ownerProdsId.Contains(p.ID)).OrderBy(p=>p._dictNomen.superpole).ToList();//bvv120420 UsageResponse response = new UsageResponse(); foreach (Product prod in ownerProds) { if (provider.IsMainVersion(prod.ID) || provider.isPrikazVersion(prod.ID)) { var ff = from confs0 in provider.Configurations where confs0.ProductID == uid && confs0.ProductOwnerID == prod.ID select confs0.Quantity;//bvv120420 UsageRow row = new UsageRow(prod.ID, prod._dictNomen.superpole, ff.First().ToString(), ff.First().ToString(), prod.Version, //bvv120420 prod.MainVersion, prod.OrderYear, prod.OrderNumber,"0"); response.rows.Add(row); }; } response.totalCount = response.rows.Count; //response.rows = response.rows.OrderBy(c => c.superpole); JavaScriptSerializer js = new JavaScriptSerializer(); jsonResponse = js.Serialize(response); } }
protected void Page_Load(object sender, EventArgs e) { using (ProductProvider provider = new ProductProvider()) { Guid uid = new Guid(Request["uid"]); List<Aspect.Domain.Configuration> confs = provider.Configurations.Where(c => c.ProductID == uid).ToList(); List<Guid> ownerProdsId = confs.DistinctBy(c => c.ProductOwnerID).Select(c => c.ProductOwnerID).ToList(); List<Product> ownerProds = provider.Products.Where(p => ownerProdsId.Contains(p.ID)).ToList(); UsageResponse response = new UsageResponse(); foreach (Product prod in ownerProds) { if (provider.IsMainVersion(prod.ID) || provider.isPrikazVersion(prod.ID)) { UsageRow row = new UsageRow(prod.ID, prod._dictNomen.superpole, prod.Version, prod.MainVersion, prod.OrderYear, prod.OrderNumber); response.rows.Add(row); }; } response.totalCount = response.rows.Count; JavaScriptSerializer js = new JavaScriptSerializer(); jsonResponse = js.Serialize(response); } }
protected void Page_Load(object sender, EventArgs e) { using (ProductProvider provider = new ProductProvider()) { Guid id = provider.CreateNewVersionOfProduct(RequestProductID, User.ID); Response.Redirect(String.Format("~/Configuration/Edit.aspx?ID={0}", id)); } }
protected void Page_Load(object sender, EventArgs e) { // выбираем значения из post запроса Guid[] prods = Request["products"].Split(',').Select(p => new Guid(p)).ToArray(); //120420 // List<Guid> prods = Request["products"].Split(',').Select(p => new Guid(p)).ToList(); Guid srcProductID = new Guid(Request["left_uid"]); Guid dstProductID = new Guid(Request["right_uid"]); //List<string> qdus_new = Request["qdus_new"].Split(',').ToList<string>(); //120420 string[] qdus_new = Request["qdus_new"].Split(',').ToArray(); //120420 // для каждого продукта в списке [products] выполняем // замену исходного продукта на целевой // foreach (Guid prod in prods) //120420 for (int i = 0; i < prods.Length; i++) //120420 { using (ProductProvider provider = new ProductProvider()) { // создаём новую версию продукта Guid newprod = provider.CreateNewVersionOfProduct(prods[i], Guid.Empty); // берём все исходные детали для замены // их может быть несколько List<Aspect.Domain.Configuration> srcConfs, dstConfs; srcConfs = provider.Configurations.Where(p => p.ProductOwnerID == newprod && p.ProductID == srcProductID).ToList(); dstConfs = new List<Aspect.Domain.Configuration>(); // создаём на базе исходных деталей - целевые с такими же параметрами using (ConfigurationProvider confProvider = new ConfigurationProvider()) { foreach (Aspect.Domain.Configuration conf in srcConfs) { Aspect.Domain.Configuration newconf = confProvider.CopyConfiguration(conf); newconf.ID = Guid.NewGuid(); newconf.ProductID = dstProductID; newconf.Quantity = Convert.ToDecimal(qdus_new[i]); dstConfs.Add(newconf); } } // удаляем из спецификации исходные продукты // вставляем в спецификацию новые продукты provider.Configurations.DeleteAllOnSubmit(srcConfs); provider.Configurations.InsertAllOnSubmit(dstConfs); provider.SubmitChanges(); // устанавливаем признак основной версии ProductProperty prop = provider.ProductProperties.Where( p => p.ProductID == newprod && p.PropertyID == new Guid("BBE170B0-28E4-4738-B365-1038B03F4552")).Single(); prop.Value = "1"; provider.SubmitChanges(); } } }
protected void Page_Load(object sender, EventArgs e) { using (ProductProvider provider = new ProductProvider()) { Product product = provider.GetProduct(new Guid(Request.Params["prodid"])); Page.Title = String.Format("Применяемость по изделиям для {0} версии {1}", product.Name, product.Version); } }
protected void BindData(Guid productId) { using (ProductProvider provider = new ProductProvider()) { if (Guid.Empty.Equals(productId)) return; Statistic stat = new Statistic(); divSummaryWeight = weightOfProduct(provider, productId, 1, ref stat).ToString(); divProductName = productName(productId); divIgnore = stat.ingoreProducts.ToString(); } }
protected void Page_Load(object sender, EventArgs e) { using (ProductProvider provider = new ProductProvider()) { // ищем продукт в приказных изделиях Product product = provider.GetProduct(new Guid(Request[PROD_ID])); if (!String.IsNullOrEmpty(product.OrderNumber) && !String.IsNullOrEmpty(product.OrderYear)) { // приказное изделия var orders = from order in provider.OrderArticles where order.year == product.OrderYear && order.cco == product.OrderNumber select order; if (orders.Count() > 0) { // есть приказ соотвествующий номеру и году Page.Title = string.Format("Разузлованный технологический состав для {0} версии {1}. Номер приказа: {2}. Год приказа: {3}", product._dictNomen.pn1, product.Version, product.OrderNumber, product.OrderYear); } else { // приказа нет, поэтому будем считать его стандартным Page.Title = string.Format("Разузлованный технологический состав для {0} стандартной версии {1}.", product._dictNomen.pn1, product.Version); } } else { // не приказное изделие Page.Title = string.Format("Разузлованный технологический состав для {0} стандартной версии {1}.", product._dictNomen.pn1, product.Version); } } }
protected void DataBind() { using (ProductProvider provider = new ProductProvider()) { fileTables = new List<FileRow>(); Guid pid = GetPID; var userFiles = provider.UserFiles.Where(file => file.pid == pid); foreach (var file in userFiles) { fileTables.Add(new FileRow() { ID = file.id, UserName = file.username, FileName = String.Format("../UserFiles/{0}", Server.UrlEncode(file.filename)) }); } Repeater1.DataSource = fileTables; Repeater1.DataBind(); } }
protected void Page_Load(object sender, EventArgs e) { using (ProductProvider provider = new ProductProvider()) { Product product = provider.GetProduct(new Guid(Request.QueryString["prodid"])); if (Request.QueryString["orderid"] == null) { Title = String.Format("Редактирование %state% КМХ для {0}.", product.PublicName); } else { OrderArticle order = (from or in provider.OrderArticles where or.ID == new Guid(Request.QueryString["orderid"]) select or).Single(); Title = String.Format("Редактирование %state% КМХ для {0}. По приказу №{1} от {2} года.", product.PublicName, order.cco, order.year); } } this.PopupIframeInitializationStringWithProduct(linkSelectMaterial, "", string.Format("../Popup/Selector.aspx?ID={0}&ctrlID={1}&treeID={2}&textCtrlID={3}", "", "valueID", "316c6bc7-d883-44c8-aae0-602f49c73595", "clientID"), 800, 500); }
protected void Page_Load(object sender, EventArgs e) { using (ProductProvider provider = new ProductProvider()) { if (!string.IsNullOrEmpty(Request["nid"])) { try { Guid nid = new Guid(Request["nid"]); int lmaxVersion = provider.getMaxVersionByNomenID(nid) + 1; maxVersion = lmaxVersion.ToString(); } catch { maxVersion = ""; } } else { maxVersion = ""; } } }
public static string SaveKmhCard(transfer card, int saveType, Guid order_id) { DateTime CurDateTime = DateTime.Now; // saveType == 1 (сохранить как основную) // saveType == 2 (сохранить как приказную) // saveType == 3 (как приказную и как основную) using (ProductProvider provider = new ProductProvider()) { // {!} здесь может быть проблемное место, потому что надо оборачивать действия // в одну транзакцию // проходим два раза по коду // 1 - стандартная карточка // 2 - карточка по приказу for (int index = 1; index <= 2; index++) { if (saveType == 2 && index == 1) continue; if (saveType == 1 && index == 2) continue; // получаем все существующие стандарные карты для данного продукта var all_kmh = from kmh in provider.Specification_1s where Object.Equals(kmh.OrderArticleID, index == 1 ? null : new Guid?(order_id)) && kmh._Product_ID == card.prod_id select kmh; // переносим полученные данные в карту Specification_1 savedCard = new Specification_1(); savedCard.id = Guid.NewGuid(); savedCard.OrderArticleID = (index == 1 ? null : new Guid?(order_id)); LoadKmh(savedCard, card); // устанавливаем время действия карты savedCard.FinishDT = PlusInfinity; if (all_kmh.Count() == 0) { // если других карт нету, даты от -∞ до +∞ // savedCard.StartDT = MinusInfinity; savedCard.StartDT = CurDateTime; } else { // если другие карты есть, дата от CurDateTime+1 до +∞ savedCard.StartDT = CurDateTime; // выбираем актуальные карты и завершаем дату их действия List<Specification_1> actual_kmh = all_kmh.Where(c => c.StartDT <= CurDateTime && c.FinishDT > CurDateTime).ToList(); foreach (Specification_1 iter_kmh in actual_kmh) { iter_kmh.FinishDT = CurDateTime; } } savedCard.dtle = CurDateTime; try { savedCard.userID = (Guid)HttpContext.Current.Session["userID"]; } catch { } provider.Specification_1s.InsertOnSubmit(savedCard); } // Сохраняем изменения provider.SubmitChanges(); } PostResult result = new PostResult("ok", 0) { TimeStamp = CurDateTime.ToUniversalTime() }; return result.ToString(); }
public static string SaveRoute2(transfer saved_route) { using (ProductProvider provider = new ProductProvider()) { Guid unitDictNomen = (saved_route.unit_id == Guid.Empty) ? Guid.Empty : provider.GetProduct(saved_route.unit_id)._dictNomenID.Value; Guid prodDictNomen = provider.GetProduct(saved_route.prod_id)._dictNomenID.Value; SaveRouteInternal(unitDictNomen, prodDictNomen, saved_route.route); }; return new PostResult("ok", 0).ToString(); }
public static string RequestKmhCard(Guid prod_id, Guid order_id) { using (ProductProvider provider = new ProductProvider()) { DateTime CurDateTime = DateTime.Now; Product prod = provider.GetProduct(prod_id); transfer tran = new transfer() { prod_id = prod._dictNomenID.Value }; #region filling kmh card if (Guid.Empty.Equals(order_id)) { var actual_kmh = from kmh in provider.Specification_1s where kmh.OrderArticleID == null // стандарные (не приказные) && kmh.StartDT <= CurDateTime // на текущую дату && kmh.FinishDT > CurDateTime && kmh._Product_ID == prod._dictNomenID select kmh; if (actual_kmh.Count() > 0) { FillKmh(actual_kmh.First(), tran, CurDateTime); tran.prod_pn2 = actual_kmh.First().Product.superpole; } else { // создание новой КМХ для продукта tran.prod_id = prod._dictNomenID.Value; tran.prod_pn2 = prod._dictNomen.superpole; } } else { Product order_unit = provider.GetActualOrderProduct(order_id); Specification_1 actual_kmh = null; // пытаемся получить КМХ для данного приказа try { actual_kmh = (from kmh in provider.Specification_1s where kmh.OrderArticleID == order_id // стандарные (не приказные) && kmh.StartDT <= CurDateTime // на текущую дату && kmh.FinishDT > CurDateTime && kmh._Product_ID == prod._dictNomenID select kmh).Single(); } catch { // пытаемся получить КМХ на момент создания сборки try { var actual_date = (from dates in provider.TechnDates where dates.OrderArticleID == order_id && dates._dictNomenID == prod._dictNomenID select dates.gen_date).SingleOrDefault(); if (actual_date == null) actual_date = order_unit.CreatedDate; actual_kmh = (from kmh in provider.Specification_1s where kmh.OrderArticleID == null // стандарные (не приказные) && kmh.StartDT <= actual_date && kmh.FinishDT > actual_date && kmh._Product_ID == prod._dictNomenID select kmh).Single(); } catch { } } if (actual_kmh == null) { // создание новой КМХ для продукта tran.prod_id = prod._dictNomenID.Value; tran.prod_pn2 = prod._dictNomen.superpole; } else { // заполняем карточку FillKmh(actual_kmh, tran, CurDateTime); tran.prod_pn2 = actual_kmh.Product.superpole; } } #endregion Guid userID = (Guid)HttpContext.Current.Session["userID"]; List<Guid> userRoles = (from role in provider.UserRoles where role.UserID == userID select role.RoleID).ToList(); var permisions = (from perm in provider.RoleViewPermissions where perm.PermissionEntityID == new Guid("11F1BC17-20FB-4E93-8389-A55BFA4CA251") // EditorKMH && userRoles.Contains(perm.RoleID) && perm.Read select perm.EntityID).Distinct(); tran.enabled_fields.AddRange(permisions); JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Serialize(tran); } }
public static string SaveAddMaterials(List<transfer_add> list, Guid prodid, int saveType, Guid order_id, Guid ste_id) { DateTime CurDateTime = DateTime.Now; // saveType == 1 (сохранить как основную) // saveType == 2 (сохранить как приказную) // saveType == 3 (как приказную и как основную) using (ProductProvider provider = new ProductProvider()) { // {!} здесь может быть проблемное место, потому что надо оборачивать действия // в одну транзакцию // проходим два раза по коду // 1 - стандартная карточка // 2 - карточка по приказу for (int index = 1; index <= 2; index++) { if (saveType == 2 && index == 1) continue; if (saveType == 1 && index == 2) continue; // получаем актуальные на текущий момент дополнительные материалы var all_kmh = from kmh in provider.Specification_2s where Object.Equals(kmh.OrderArticleID, index == 1 ? null : new Guid?(order_id)) && kmh._Product_ID == prodid && kmh._dictS_TEID == ste_id select kmh; // перебераем только актуальные карты // и завершаем их по текущей дате foreach (var kmh in all_kmh.Where(it => it.StartDT <= CurDateTime && it.FinishDT > CurDateTime)) { kmh.FinishDT = CurDateTime; } // если в списке нет доп. материалов, то вставляем // специальный материал с Guid = {00000000-0000-0000-0000-000000000000} if (list.Count == 0) { list.Add(new transfer_add() { material_id = Guid.Empty }); } // создаём новые карты материалов foreach (transfer_add new_kmh in list) { provider.Specification_2s.InsertOnSubmit(new Specification_2() { id = Guid.NewGuid(), _Product_ID = prodid, _Material_ID = new_kmh.material_id, // если данный материал уже применялся, то дата начинается с текущего момента // если же данный материал добавлен впервые то дата начаинается с -∞ // StartDT = all_kmh.Count(it => it._Material_ID == new_kmh.material_id) > 0 ? CurDateTime : MinusInfinity, StartDT = CurDateTime, FinishDT = PlusInfinity, no = new_kmh.no, _dictUMID = new_kmh.um_id, _dictSID = new_kmh.s_id, _dictS_TEID = ste_id, OrderArticleID = (index == 1 ? null : new Guid?(order_id)) }); } } // Сохраняем изменения provider.SubmitChanges(); } PostResult result = new PostResult("ok", 0) { TimeStamp = CurDateTime.ToUniversalTime() }; return result.ToString(); }
protected void ItemCommand(Object Sender, RepeaterCommandEventArgs e) { if (e.CommandName == "com.delete") { using (ProductProvider provider = new ProductProvider()) { var userFile = provider.UserFiles.SingleOrDefault(it => it.id == new Guid((string)e.CommandArgument)); if (userFile != null) { provider.UserFiles.DeleteOnSubmit(userFile); String savePath = Path.Combine(Request.PhysicalApplicationPath, "UserFiles"); File.Delete(Path.Combine(savePath, userFile.filename)); provider.SubmitChanges(); } } } DataBind(); }
public static string RequestAllRoutes(Guid prod_id) { using (ProductProvider provider = new ProductProvider()) { DateTime currentDT = DateTime.Now; List<transfer_route> list_routes = new List<transfer_route>(); Product product = provider.GetProduct(prod_id); var applicability = (from conf in provider.Configurations join prod in provider.Products on conf.ProductID equals prod.ID join ownprod in provider.Products on conf.ProductOwnerID equals ownprod.ID join ownnomen in provider._dictNomens on ownprod._dictNomenID equals ownnomen.ID where prod._dictNomenID == product._dictNomenID select ownnomen.ID).Distinct(); var all_routes = from route in provider.Specification_3s where route._Material_ID == product._dictNomenID && route.StartDT <= currentDT && route.FinishDT > currentDT select route; // есть применяемость // нет маршрута var list1 = applicability.Where(appl => !all_routes.Any(rt => rt._Product_ID == appl)); foreach (Guid ownnomen_id in list1) { _dictNomen ownnomen = provider._dictNomens.SingleOrDefault(d => d.ID == ownnomen_id); transfer_route adding_route = new transfer_route(); adding_route.prodNomenID = product._dictNomenID.Value; adding_route.unitNomenID = ownnomen.ID; adding_route.unit_pn1 = ownnomen.pn1; adding_route.unit_pn2 = ownnomen.superpole; list_routes.Add(adding_route); } // есть маршрут foreach (Specification_3 route in all_routes ) { try { _dictNomen unit_nomen = provider._dictNomens.SingleOrDefault(d => d.ID == route._Product_ID); transfer_route adding_route = new transfer_route(); adding_route.ID = route.id; adding_route.prodNomenID = product._dictNomenID.Value; adding_route.unitNomenID = route._Product_ID; adding_route.unit_pn1 = unit_nomen.pn1; adding_route.unit_pn2 = unit_nomen.superpole; adding_route.route = route.Route; adding_route.comment = route.cmt; adding_route.lastedit_date = route.dtle; try { adding_route.lastedit_author = (from u in provider.Users where u.ID == route.userID select u.Name).Single(); } catch {}; list_routes.Add(adding_route); } catch { } } JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Serialize(list_routes); } }
public static string GetColumns(Guid ClassificationTreeId) { Guid userID; try { userID = (Guid)HttpContext.Current.Session["userID"]; } catch { return new PostResult("Lose user session. Please reconnect.", 102).ToString(); } List<transfer_column> list = new List<transfer_column>(); using (ProductProvider provider = new ProductProvider()) { // select existing settings var columns = from col in provider.ColumnWidths where col.ClassificationTreeID == ClassificationTreeId && col.UserID == userID select col; foreach (var column in columns) { list.Add(new transfer_column() { hidden = column.Hidden, position = column.Index, uid = column.ColumnID, width = (int) column.Width }); } } JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Serialize(list); }
public static string GenerateForOrder(Guid order_id, Guid product_id, DateTime gen_date) { using (ConfigurationTreeProvider provider = new ConfigurationTreeProvider()) { // получаем разузлованный состав для данной главной детали DataSet tree = provider.GetList(FormGridView.ConfigurationTree, product_id, UserID, new List<SearchExpression>()); // удаляем все существующие даты для данного изделия и данного приказа var subprod_dictNomenIDs = new List<Guid>(); foreach (DataRow row in tree.Tables[0].Rows) { subprod_dictNomenIDs.Add((Guid)row["_dictNomenID"]); } using (ProductProvider pprovider = new ProductProvider()) { subprod_dictNomenIDs.Add(pprovider.GetProduct(product_id)._dictNomenID.Value); } var datesForDelete = provider.TechnDates.Where( it => subprod_dictNomenIDs.Contains(it._dictNomenID) && it.OrderArticleID == order_id); provider.TechnDates.DeleteAllOnSubmit(datesForDelete); provider.SubmitChanges(); // создаём новые записи для данного приказа foreach (Guid subprod_dictNomenID in subprod_dictNomenIDs.Distinct()) { provider.TechnDates.InsertOnSubmit(new TechnDate() { OrderArticleID = order_id, _dictNomenID = subprod_dictNomenID, gen_date = gen_date }); } provider.SubmitChanges(); } return new PostResult("ok", 0).ToString(); }
public static string SetColumns(List<transfer_column> columns, Guid ClassificationTreeId) { Guid userID; try { userID = (Guid)HttpContext.Current.Session["userID"]; } catch { return new PostResult("Lose user session. Please reconnect.", 102).ToString(); } using (ProductProvider provider = new ProductProvider()) { // delete existing settings var columnIDs = columns.Select(it => it.uid); var forDelete = from col in provider.ColumnWidths where col.ClassificationTreeID == ClassificationTreeId && col.UserID == userID && columnIDs.Contains(col.ColumnID) select col; provider.ColumnWidths.DeleteAllOnSubmit(forDelete); provider.SubmitChanges(); // saving new settings foreach (var column in columns) { provider.ColumnWidths.InsertOnSubmit(new ColumnWidth() { ID = Guid.NewGuid(), ClassificationTreeID = ClassificationTreeId, UserID = userID, ColumnID = column.uid, Width = column.width, Index = column.position, Hidden = column.hidden }); } provider.SubmitChanges(); } return new PostResult("ok", 0).ToString(); }
public static string TechDatesSave(Guid _dictNomenID, Guid OrderArticleID, DateTime? gen_date, DateTime? him_date, DateTime? svar_date, DateTime? techn_date) { try { using (ProductProvider provider = new ProductProvider()) { // select row with dates from DB var unit_dates = provider.TechnDates.SingleOrDefault(it => it._dictNomenID == _dictNomenID && it.OrderArticleID == OrderArticleID); // if row doesn't exists create new row if (unit_dates == null) { unit_dates = new TechnDate() { _dictNomenID = _dictNomenID, OrderArticleID = OrderArticleID }; provider.TechnDates.InsertOnSubmit(unit_dates); } // clear dates if needed and save dates to row if (gen_date.HasValue) { unit_dates.gen_date = (gen_date == DateTime.MinValue) ? null : gen_date; } if (him_date.HasValue) { unit_dates.him_date = (him_date == DateTime.MinValue) ? null : him_date; } if (svar_date.HasValue) { unit_dates.svar_date = (svar_date == DateTime.MinValue) ? null : svar_date; } if (techn_date.HasValue) { unit_dates.techn_date = (techn_date == DateTime.MinValue) ? null : techn_date; } // if row contain all nulled fields delete it if (unit_dates.techn_date == null && unit_dates.him_date == null && unit_dates.svar_date == null && unit_dates.gen_date == null) { provider.TechnDates.DeleteOnSubmit(unit_dates); } // save dates to DB provider.SubmitChanges(); } return new PostResult("Ok", 0).ToString(); } catch (Exception e) { return new PostResult("Unknown exception: " + e.Message, -1).ToString(); } }
/// <summary> /// Для выделенных в гриде продуктов устанавливает поле "Основная версия" в "1", /// при условии что в данный момент времени это поле установлено в "0" /// </summary> protected void SetMainVersion_Click(object sender, EventArgs e) { using (ProductProvider provider = new ProductProvider()) { // составляем список выделенных продуктов List<Guid> selectedRows; if (hiddenSelectedProducts.Value.ToString() != "") selectedRows = hiddenSelectedProducts.Value.ToString().Split(',').Select(s => new Guid(s)).ToList(); else return ; provider.SetMainVersion(this.User.ID, selectedRows); // insert here // RefreshButton_Click(sender, e); // GridPanel1.Reload(); } }
protected void SavaFileNames(object sender, EventArgs e) { using (ProductProvider provider = new ProductProvider()) { Repeater repeater = (Repeater)FindControlRecursive(this.Master, "Repeater1"); foreach (var repeaterItem in repeater.Controls) { var hidden = (repeaterItem as RepeaterItem).FindControl("hiddenID") as HiddenField; var edit = (repeaterItem as RepeaterItem).FindControl("textUserName") as TextBox; var userFile = provider.UserFiles.Single(it => it.id == new Guid(hidden.Value)); if (userFile != null && userFile.username != edit.Text) { userFile.username = edit.Text; } } provider.SubmitChanges(); } }
private void BindGeneralPropertyList(List<ITreeNode> parents) { using (ProductProvider provider = new ProductProvider()) { //--- general property------- List<Property> props = provider.GetAvailablePropertiesToModify(this.Roles); var q = from s in props.Where(f => f.ClassificationID.HasValue) join l in parents on s.ClassificationID.Value equals l.ID select new Property() { ID = s.ID, Type = s.Type, Name = string.Format("{0} ({1})", s.Name, l.Name) }; props = q.ToList(); List<ProductProperty> values = provider.ProductProperties.Where(pp => pp.ProductID == this.RequestProductID).ToList(); List<Pair<Property, ProductProperty>> source = new List<Pair<Property, ProductProperty>>(); foreach (Property item in props) { ProductProperty val = values.SingleOrDefault(pp => pp.PropertyID == item.ID); Pair<Property, ProductProperty> entity = new Pair<Property, ProductProperty>(item, val); source.Add(entity); } GeneralPropertyRepeater.DataSource = source;//props; GeneralPropertyRepeater.DataBind(); } }
public static void SaveRouteInternal(Guid _Product_ID, Guid _Material_ID, string Route) { DateTime currentDT = DateTime.Now; Route = Route.Trim(); using (ProductProvider provider = new ProductProvider()) { // получаем действующие (по времени) маршруты по применяемости // для данного продукта в данной сборке // ! в идеале такой маршрут должен быть один var routes = from rt in provider.Specification_3s where rt._Product_ID == _Product_ID && rt._Material_ID == _Material_ID && rt.StartDT <= currentDT && rt.FinishDT > currentDT select rt; // завершаем маршруты текущей датой foreach (var route in routes) { route.FinishDT = currentDT; } // создаём новый маршрут по применяемости, если он не пустой if (!String.IsNullOrEmpty(Route)) { Specification_3 newRoute = new Specification_3() { id = Guid.NewGuid(), _Product_ID = _Product_ID, _Material_ID = _Material_ID, Route = Route, dtle = currentDT, StartDT = currentDT, FinishDT = DateTime.MaxValue }; try { newRoute.userID = (Guid)HttpContext.Current.Session["userID"]; } catch { } provider.Specification_3s.InsertOnSubmit(newRoute); } provider.SubmitChanges(); } }
public static string GetTechConsist(Guid prod_id, Guid order_id) { using (ConfigurationTreeProvider provider = new ConfigurationTreeProvider()) { // главный продукт (чья дата берётся как основная в случае по приказу) Product product = null; using (ProductProvider productProvider = new ProductProvider()) { product = productProvider.GetProduct(prod_id); } // для стандартных продуктов всегда берётся карта актуальная на текущий момент // для приказного продукта // * если карточка приказная - на текущий момент // * если карточка стандартная - на момент создания продукта // !! в новой редакции, берётся не дата создания продукта, а дата из // колонки [TechnDates].[gen_date] DateTime currentDT = DateTime.Now; DateTime actualDT = Guid.Empty.Equals(order_id) ? currentDT : product.CreatedDate; // Получаем разузлованный состав List<transfer> list = new List<transfer>(); DataSet data = provider.GetListWithKmh(prod_id, order_id, actualDT, currentDT); // добавляем самую верхнюю деталь /*transfer tran = new transfer(); tran.prod_id = product.ID; tran.prod_pn1 = product._dictNomen.pn1; tran.prod_pn2 = product._dictNomen.pn2; #region attachKMH // получаем приказную актуальную карту Specification_1 order_kmh = null; try { if (!Guid.Empty.Equals(order_id)) { order_kmh = (from kmh in provider.Specification_1s where kmh.OrderArticleID == order_id && kmh._Product_ID == product._dictNomenID && kmh.StartDT <= currentDT && kmh.FinishDT > currentDT select kmh).Single(); } } catch {} // получеам стандартную актуальную карту Specification_1 stand_kmh = null; try { stand_kmh = (from kmh in provider.Specification_1s where kmh.OrderArticleID == null && kmh._Product_ID == product._dictNomenID && kmh.StartDT <= actualDT && kmh.FinishDT > actualDT select kmh).Single(); } catch {} if (!Guid.Empty.Equals(order_id) && order_kmh != null) { FillKmh(order_kmh, tran, currentDT); } else if (stand_kmh != null) { FillKmh(stand_kmh, tran, currentDT); } #endregion*/ // получаем маршрут по применяемости /*try { var route = (from r in provider.Specification_3s where r._Material_ID == product._dictNomenID && r._Product_ID == Guid.Empty && r.StartDT <= currentDT && r.FinishDT > currentDT select r).Single(); tran.route = route.Route; tran.route_changed = true; } catch { } list.Add(tran);*/ try { #region getch result of query foreach (DataRow row in data.Tables[0].Rows) { transfer tran = new transfer(); tran.unit_id = row.Field<Guid>("unitID"); tran.unit_pn1 = row.Field<string>("unitPn1"); tran.unit_pn2 = row.Field<string>("unitPn2"); tran.prod_id = row.Field<Guid>("prodID"); tran.prod_pn1 = row.Field<string>("prodPn1"); tran.prod_pn2 = row.Field<string>("prodPn2"); tran.level = row.Field<int>("Level"); tran.count = row.Field<decimal>("Quantity"); tran.group_exchange = row.Field<int?>("GroupToChange"); tran.number_exchange = row.Field<int?>("GroupNumber"); // дата добавления в состав должна быть только у приказных составов tran.added_date = row.Field<DateTime?>("gen_date"); /*#region attachKMH // получаем приказную актуальную карту order_kmh = null; try { if (!Guid.Empty.Equals(order_id)) { order_kmh = (from kmh in provider.Specifications where kmh.tn == 1 && kmh.OrderArticleID == order_id && kmh._Product_ID == row.Field<Guid>("prodNomenID") && kmh.StartDT < currentDT && kmh.FinishDT > currentDT select kmh).Single(); } } catch {} // получеам стандартную актуальную карту stand_kmh = null; try { stand_kmh = (from kmh in provider.Specifications where kmh.tn == 1 && kmh.OrderArticleID == null && kmh._Product_ID == row.Field<Guid>("prodNomenID") && kmh.StartDT < actualDT && kmh.FinishDT > actualDT select kmh).Single(); } catch {} if (!Guid.Empty.Equals(order_id) && order_kmh != null) { FillKmh(order_kmh, tran, currentDT); } else if (stand_kmh != null) { FillKmh(stand_kmh, tran, currentDT); } #endregion*/ FillKmhByRow(provider, row, tran, currentDT); list.Add(tran); } #endregion } catch (Exception e) { string tmpMessage = e.Message; } Dictionary<Guid,string> PVDs = provider._dictPVDs.AsEnumerable().ToDictionary(i => i.ID, i => i.pvdn); Dictionary<Guid, string> UMs = provider._dictUMs.AsEnumerable().ToDictionary(i => i.ID, i => i.umn1); Dictionary<Guid, string> SFs = provider._dictSFs.AsEnumerable().ToDictionary(i => i.ID, i => i.sfn); foreach (var item in list) { try { item.pvd = item.pvd_id.HasValue ? PVDs[item.pvd_id.Value] : ""; item.um = item.um_id.HasValue ? UMs[item.um_id.Value] : ""; item.sf = item.sf_id.HasValue ? SFs[item.sf_id.Value] : ""; } catch { }; } JavaScriptSerializer serializer = new JavaScriptSerializer(); // some fix, because setting in web.config not always working as good serializer.MaxJsonLength = 50000000; return serializer.Serialize(list); } }
protected void Page_Load(object sender, EventArgs e) { if(!Page.IsPostBack) { Guid cid = Guid.Empty; Guid eid = Guid.Empty; try { cid = new Guid(Request["CID"]); eid = new Guid(Request["ID"]); } catch (Exception) { Edit.Visible = false; Usage.Visible = false; View.Visible = false; Tree.Visible = false; TreeEx.Visible = false; EditObject.Visible = false; NewObject.Visible = false; ViewObject.Visible = false; return; } if (cid != Guid.Empty) //dictionary entity { if (cid == new Guid("316c6bc7-d883-44c8-aae0-602f49c73595")) { // добавляем пункт прикрепляемые файлы string secretKey = MD5Hash(String.Format("{0}{1}{2}", AttachedFilesApplication, User.ID, new Guid(Request["ID"]))); string attachedUrl = @"javascript:CallAttachedFiles('{0}','{1}','{2}','{3}')"; AttachedFiles.NavigateUrl = string.Format(attachedUrl, AttachedFilesApplication, this.User.ID, new Guid(Request["ID"]), secretKey); } else { AttachedFiles.Visible = false; } NewObjectWithConfs.Visible = false; Edit.Visible = false; EditReadOnly.Visible = false; Usage.Visible = false; UsageWaves.Visible = false; View.Visible = false; Tree.Visible = false; TreeEx.Visible = false; TreeWithKmh.Visible = false; EditKmh.Visible = false; EditObject.NavigateUrl = string.Format("~/Editarea/EditDict.aspx?ID={0}&new=false&DictID={1}", Request["ID"], cid); NewObject.NavigateUrl = string.Format("~/Editarea/EditDict.aspx?ID={0}&new=true&DictID={1}", Request["ID"], cid); ViewObject.NavigateUrl = string.Format("~/Editarea/ViewDict.aspx?ID={0}&new=false&DictID={1}", Request["ID"], cid); using (Aspect.Model.DictionaryDomain.DictionaryProvider provider = new Aspect.Model.DictionaryDomain.DictionaryProvider()) { if (!provider.AllowEdit(this.Roles, cid)) { EditObject.Visible = false; NewObject.Visible = false; } } } else //product entity { NewObject.Text = "Добавить новую версию"; NewObjectWithConfs.NavigateUrl = string.Format("{0}?ID={1}", NewObjectWithConfs.NavigateUrl, Request["ID"]); Edit.NavigateUrl = string.Format("{0}?ID={1}", Edit.NavigateUrl, Request["ID"]); EditReadOnly.NavigateUrl = string.Format("{0}?ID={1}&mode=view", EditReadOnly.NavigateUrl, Request["ID"]); Usage.NavigateUrl = string.Format("{0}?ID={1}", Usage.NavigateUrl, Request["ID"]); UsageWaves.NavigateUrl = string.Format("{0}?prodid={1}", UsageWaves.NavigateUrl, Request["ID"]); View.NavigateUrl = string.Format("{0}?ID={1}", View.NavigateUrl, Request["ID"]); Tree.NavigateUrl = string.Format("{0}?ID={1}", Tree.NavigateUrl, Request["ID"]); TreeEx.NavigateUrl = string.Format("{0}?ID={1}", TreeEx.NavigateUrl, Request["ID"]); EditObject.NavigateUrl = string.Format("{0}?ID={1}&new=false", EditObject.NavigateUrl, Request["ID"]); NewObject.NavigateUrl = string.Format("{0}?ID={1}&new=true", NewObject.NavigateUrl, Request["ID"]); ViewObject.NavigateUrl = string.Format("{0}?ID={1}&new=false", ViewObject.NavigateUrl, Request["ID"]); using (Aspect.Model.ProductDomain.ProductProvider provider = new Aspect.Model.ProductDomain.ProductProvider()) { if (!provider.AllowEdit(this.Roles, eid)) { EditObject.Visible = false; NewObject.Visible = false; Edit.Visible = false; } // добавляем пункт прикрепляемые файлы Product prod = provider.GetProduct(new Guid(Request["ID"])); string secretKey = MD5Hash(String.Format("{0}{1}{2}", AttachedFilesApplication, User.ID, prod._dictNomenID)); string attachedUrl = @"javascript:CallAttachedFiles('{0}','{1}','{2}','{3}')"; AttachedFiles.NavigateUrl = string.Format(attachedUrl, AttachedFilesApplication, this.User.ID, prod._dictNomenID, secretKey); // ищем продукт в приказных изделиях if (!String.IsNullOrEmpty(Request.QueryString["order_id"])) { TreeWithKmh.NavigateUrl = string.Format("{0}?prodid={1}&orderid={2}", TreeWithKmh.NavigateUrl, Request["ID"], Request["order_id"]); } else { Product product = provider.GetProduct(eid); if (!String.IsNullOrEmpty(product.OrderNumber) && !String.IsNullOrEmpty(product.OrderYear)) { // приказное изделия var orders = from order in provider.OrderArticles where order.year == product.OrderYear && order.cco == product.OrderNumber select order; if (orders.Count() > 0) { // есть приказ соотвествующий номеру и году TreeWithKmh.NavigateUrl = string.Format("{0}?prodid={1}&orderid={2}", TreeWithKmh.NavigateUrl, Request["ID"], orders.First().ID); EditKmh.NavigateUrl = string.Format("/Technology/EditorKmh.aspx?prodid={0}&orderid={1}", Request["ID"], orders.First().ID); } else { // приказа нет, поэтому будем считать его стандартным TreeWithKmh.NavigateUrl = string.Format("{0}?prodid={1}", TreeWithKmh.NavigateUrl, Request["ID"]); EditKmh.NavigateUrl = string.Format("/Technology/EditorKmh.aspx?prodid={0}", Request["ID"]); } } else { // не приказное изделие TreeWithKmh.NavigateUrl = string.Format("{0}?prodid={1}", TreeWithKmh.NavigateUrl, Request["ID"]); EditKmh.NavigateUrl = string.Format("/Technology/EditorKmh.aspx?prodid={0}", Request["ID"]); } } if (provider.IsMainVersion(eid)) { /* * для основных версий запрещается редактирование * характеристик и состава */ EditObject.Visible = false; Edit.Visible = false; } else { /* * для НЕосновных версий запрещается создание * новых версий и новых версий с составом */ NewObject.Visible = false; NewObjectWithConfs.Visible = false; } if (provider.isPrikazVersion(eid) || provider.isLessOfMainVersion(eid)) { /* * для приказных версий запрещается редактирование * характеристик и состава */ EditObject.Visible = false; Edit.Visible = false; } if (provider.IsNotConfigurationable(eid)) { /* * для простых продуктов (материалы, прочие, ...) * запрещены любые манипуляции с составом */ NewObjectWithConfs.Visible = false; Edit.Visible = false; EditReadOnly.Visible = false; View.Visible = false; Tree.Visible = false; TreeEx.Visible = false; } if (!TechnologyEnable) { TreeWithKmh.Visible = false; } } } // применяем разрешения для пунктов меню List<KeyValuePair<HyperLink, Guid>> menuList = new List<KeyValuePair<HyperLink,Guid>>(); menuList.Add(new KeyValuePair<HyperLink,Guid>(EditObject, new Guid("8e227deb-6c24-4904-997a-0e9aeb768a3c"))); menuList.Add(new KeyValuePair<HyperLink,Guid>(ViewObject, new Guid("8f6c3479-0905-4f05-a4cb-f06de253be73"))); menuList.Add(new KeyValuePair<HyperLink,Guid>(NewObject, new Guid("20a57357-7f79-4af5-87e0-35192d16d736"))); menuList.Add(new KeyValuePair<HyperLink,Guid>(AttachedFiles, new Guid("a96e10df-fb98-42a4-8c48-c8d5c40d1536"))); menuList.Add(new KeyValuePair<HyperLink,Guid>(NewObjectWithConfs, new Guid("fe711646-62ce-4f34-b1e3-67e2376a5ff3"))); menuList.Add(new KeyValuePair<HyperLink,Guid>(Edit, new Guid("71ea2f2b-a5ab-4cad-b1c1-d025fe92eb4e"))); menuList.Add(new KeyValuePair<HyperLink,Guid>(EditReadOnly, new Guid("972431d2-cca3-46f1-bc79-b4f8250fb68f"))); menuList.Add(new KeyValuePair<HyperLink,Guid>(Usage, new Guid("65e7bea5-4a86-4b02-bfcc-3ae0ae0192d8"))); menuList.Add(new KeyValuePair<HyperLink, Guid>(UsageWaves, new Guid("F0370805-D740-4B0B-A9E6-786905F172F8"))); menuList.Add(new KeyValuePair<HyperLink,Guid>(View, new Guid("079e49a6-0d19-42b6-a8fe-6b1237d84c78"))); menuList.Add(new KeyValuePair<HyperLink,Guid>(Tree, new Guid("4a4f9ffe-1686-4f01-8c35-065cea788a54"))); menuList.Add(new KeyValuePair<HyperLink,Guid>(TreeWithKmh, new Guid("98d79f99-6b09-4846-9af8-6bacb71b7bef"))); using (ProductProvider provider = new ProductProvider()) { List<Guid> userRoles = (from role in provider.UserRoles where role.UserID == User.ID select role.RoleID).ToList(); var permisions = from perm in provider.RoleViewPermissions where perm.PermissionEntityID == new Guid("0097C313-2EAD-4E1A-B12C-BB31F110A367") // MenuActionItem && userRoles.Contains(perm.RoleID) select perm; foreach (var menuItem in menuList) { if (permisions.Count(perm => perm.EntityID == menuItem.Value && perm.Read) > 0) { menuItem.Key.Enabled = true; } else { menuItem.Key.Enabled = false; menuItem.Key.ForeColor = Color.LightGray; } } } } //Response.Write(Request["ID"]); }
public static string RequestAddMaterials(Guid prod_id, Guid order_id) { DateTime CurDateTime = DateTime.Now; using (ProductProvider provider = new ProductProvider()) { // пытаемся получить приказные доп. материалы для данного приказа Product prod = provider.GetProduct(prod_id); // пытаемся получить временные метки для химика, сварщика и технолога DateTime himDate = DateTime.Now, svarDate = DateTime.Now, technDate = DateTime.Now; var dateLabels = provider.TechnDates.SingleOrDefault(it => it._dictNomenID == prod._dictNomenID && it.OrderArticleID == order_id); // временные метки учитываются только для приказных составов if (dateLabels != null && order_id != Guid.Empty) { himDate = dateLabels.him_date.HasValue ? dateLabels.him_date.Value : dateLabels.gen_date.Value; technDate = dateLabels.techn_date.HasValue ? dateLabels.techn_date.Value : dateLabels.gen_date.Value; svarDate = dateLabels.svar_date.HasValue ? dateLabels.svar_date.Value : dateLabels.gen_date.Value; } // получаем отдельно приказные материалы для химика, сварщика и технолога #region request him kmh var him_kmh = from kmh in provider.Specification_2s where (kmh.OrderArticleID == order_id) && kmh.StartDT <= CurDateTime && kmh.FinishDT > CurDateTime && kmh._Product_ID == prod._dictNomenID && kmh._dictS_TEID == new Guid("46A00C26-1768-4521-9A33-88336E65D50C") select kmh; if (him_kmh.Count() == 0) { him_kmh = from kmh in provider.Specification_2s where kmh.OrderArticleID == null && kmh.StartDT <= himDate && kmh.FinishDT > himDate && kmh._Product_ID == prod._dictNomenID select kmh; } #endregion #region request svar kmh var svar_kmh = from kmh in provider.Specification_2s where (kmh.OrderArticleID == order_id) && kmh.StartDT <= CurDateTime && kmh.FinishDT > CurDateTime && kmh._Product_ID == prod._dictNomenID && kmh._dictS_TEID == new Guid("61931973-A5BD-40CD-92A6-FA802DE6CE6A") select kmh; if (svar_kmh.Count() == 0) { svar_kmh = from kmh in provider.Specification_2s where kmh.OrderArticleID == null && kmh.StartDT <= svarDate && kmh.FinishDT > svarDate && kmh._Product_ID == prod._dictNomenID select kmh; } #endregion #region request techn kmh var techn_kmh = from kmh in provider.Specification_2s where (kmh.OrderArticleID == order_id) && kmh.StartDT <= CurDateTime && kmh.FinishDT > CurDateTime && kmh._Product_ID == prod._dictNomenID select kmh; if (techn_kmh.Count() == 0) { techn_kmh = from kmh in provider.Specification_2s where kmh.OrderArticleID == null && kmh.StartDT <= technDate && kmh.FinishDT > technDate && kmh._Product_ID == prod._dictNomenID && kmh._dictS_TEID == new Guid("BCE12453-3AB9-4FCB-8FB3-4811A311B764") select kmh; } #endregion var actual_kmh = new List<Specification_2>(); actual_kmh.AddRange(him_kmh); actual_kmh.AddRange(techn_kmh); actual_kmh.AddRange(svar_kmh); List<transfer_add> list = new List<transfer_add>(); foreach (Specification_2 iter_kmh in actual_kmh) { // пропускаем специальный материал с Guid = {00000000-0000-0000-0000-000000000000} // которые обозначают пустые списки if (iter_kmh._Material_ID == Guid.Empty) continue; transfer_add add_material = new transfer_add() { s_id = iter_kmh._dictSID, material = !iter_kmh._Material_ID.HasValue ? "" : iter_kmh.Material.superpole, um_id = iter_kmh._dictUMID, ste_id = iter_kmh._dictS_TEID, material_id = iter_kmh._Material_ID, no = iter_kmh.no }; list.Add(add_material); } JavaScriptSerializer serializer = new JavaScriptSerializer(); return serializer.Serialize(list); } }
/* * return weight of product multiply to it count -- if don't have child products * return summary weight of child products -- if have child products */ protected decimal weightOfProduct(ProductProvider provider, Guid productId, int productCount, ref Statistic stat) { var confs = from m in provider.Configurations where m.ProductOwnerID == productId select new { m.GroupNumber, m._dictUMID, m.ProductID, m.Quantity }; if (confs.Count() == 0) { // don't have child products Product product = provider.GetProduct(productId); decimal? weight = product._dictNomen.pw; if (weight.HasValue) { return weight.Value; } else { stat.ingoreProducts += 1; return 0; } /* var prop = from m in domain.ProductProperties where m.PropertyID == new Guid("AC37F816-E4C1-4751-99ED-6180D7CCA142") // вес по приказу && m.ProductID == productId select new { m.Value }; if (prop.Count() == 1) { return Convert.ToDecimal(prop.First().Value) * productCount; } else { // ignory because product don't have weight property stat.ingoreProducts += 1; return 0; }*/ } else { // have child products decimal summaryWeight = 0; foreach (var conf in confs) { if (conf.GroupNumber == 0 && conf._dictUMID == new Guid("68CD2019-85F6-4E52-AEFE-09CA5C2B64F3")) // штуки { summaryWeight += weightOfProduct(provider, conf.ProductID, Convert.ToInt32(conf.Quantity), ref stat); } else { // ignory because child product is order version // or it measure not in pieces stat.ingoreProducts += 1; } } return summaryWeight; } }
protected void UploadButton_Click(object sender, EventArgs e) { // Specify the path on the server to // save the uploaded file to. String savePath = Path.Combine(Request.PhysicalApplicationPath, "UserFiles"); // Before attempting to perform operations // on the file, verify that the FileUpload // control contains a file. if (FileUpload1.HasFile) { // Get the name of the file to upload. String fileName = FileUpload1.FileName; String savedFileName = String.Empty; int postfix = 0; // Append the name of the file to upload to the path. do { if (postfix == 0) { savedFileName = Path.Combine(new string[] {savePath, fileName}); } else { savedFileName = Path.Combine(new string[] {savePath, Path.GetFileNameWithoutExtension(fileName) + "_" + postfix + Path.GetExtension(fileName)}); } postfix++; } while (File.Exists(savedFileName)); FileUpload1.SaveAs(savedFileName); using (ProductProvider provider = new ProductProvider()) { var userFile = new UserFile() { id = Guid.NewGuid(), pid = GetPID, cid = Guid.Empty, filename = Path.GetFileName(savedFileName), username = Path.GetFileNameWithoutExtension(fileName) }; provider.UserFiles.InsertOnSubmit(userFile); provider.SubmitChanges(); } DataBind(); // Notify the user of the name of the file // was saved under. // UploadStatusLabel.Text = "Your file was saved as " + fileName; } else { // Notify the user that a file was not uploaded. // UploadStatusLabel.Text = "You did not specify a file to upload."; } }