public void DeleteObjectAttributeValueRs(int Id) { ObjectAttributeValue deleteObjectAttributeValueRs = GetObjectAttributeValueById(Id); deleteObjectAttributeValueRs.IsDeleted = true; UpdateObjectAttributeValue(deleteObjectAttributeValueRs); }
public void DeleteObjectAttributeValue(int Id) { ObjectAttributeValue deletedObjectAttributeValue = GetObjectAttributeValueById(Id); Context.ObjectAttributeValue.Remove(deletedObjectAttributeValue); Context.Entry(deletedObjectAttributeValue).State = EntityState.Deleted; Context.SaveChanges(); }
public static void CreateOrUpdateForObject(int objectId, List <ObjectAttributeValueViewModel> attributeValueList) { ObjectAttributeRepository ObjectAttributeRepository = new ObjectAttributeRepository(new Domain.Sale.ErpSaleDbContext()); if (attributeValueList != null) { // nếu đối tượng là tạo mới thì danh sách listValue sẽ rỗng var listValue = ObjectAttributeRepository.GetAllObjectAttributeValueByObjectId(objectId).ToList(); var listEmpty = attributeValueList.Where(x => x.Value == null || x.Value == "").ToList(); foreach (var attrValue in attributeValueList.Where(x => x.Value != null && x.Value != "")) { var valueOf = listValue.Where(x => x.AttributeId == attrValue.AttributeId).FirstOrDefault(); if (valueOf != null) { valueOf.Value = attrValue.Value; valueOf.ModifiedDate = DateTime.Now; valueOf.ModifiedUserId = WebSecurity.CurrentUserId; ObjectAttributeRepository.UpdateObjectAttributeValue(valueOf); } else { valueOf = new ObjectAttributeValue { AttributeId = attrValue.AttributeId, ObjectId = objectId, IsDeleted = false, Value = attrValue.Value, CreatedDate = DateTime.Now, CreatedUserId = WebSecurity.CurrentUserId, ModifiedDate = DateTime.Now, ModifiedUserId = WebSecurity.CurrentUserId, }; ObjectAttributeRepository.InsertObjectAttributeValue(valueOf); } } //xóa những đặc tính cũ đã không còn giá trị nữa foreach (var item in listEmpty) { var valueOf = listValue.Where(x => x.AttributeId == item.AttributeId).FirstOrDefault(); if (valueOf != null) { ObjectAttributeRepository.DeleteObjectAttributeValue(valueOf.Id); } } } }
public void InsertObjectAttributeValue(ObjectAttributeValue ObjectAttributeValue) { Context.ObjectAttributeValue.Add(ObjectAttributeValue); Context.Entry(ObjectAttributeValue).State = EntityState.Added; Context.SaveChanges(); }
public void UpdateObjectAttributeValue(ObjectAttributeValue ObjectAttributeValue) { Context.Entry(ObjectAttributeValue).State = EntityState.Modified; Context.SaveChanges(); }
internal static bool AutoLinkDigitalFileToCustomerDashboard(Order orderObj, string OrderNumber, string userName, bool notifyCustomer, List <string> DigitalServiceProducts) { bool uploadedDigiFiles = false; List <RetouchedImageInfo> allRetouchImages = new List <RetouchedImageInfo>(); List <RetouchedImageInfo> allNonRetouchImages = new List <RetouchedImageInfo>(); List <RetouchedImageInfo> allItemsWithImages = new List <RetouchedImageInfo>(); try { InsertLog(DateTime.Now + " : Starting digital file link for order number " + OrderNumber); List <Guid> RetouchOptionsList = (from t in Products.GetProductsByAttribute(AppId, "IsRetouch") select t.ProductId).ToList();//get all retouch product List <Guid> imageIds = new List <Guid>(); if (orderObj != null && orderObj.OrderItems.Count > 0) { StringBuilder builder = new StringBuilder(); //Step 1 : Get all digital order items ( products ) List <string> FixProducts = DigitalServiceProducts; //new List<string>() { "autodownload_digibonus", "HQ-DigiFile(1)".ToLower(), "HQ-DigiFile(all)".ToLower(), "HQ-DigiFile(1)STAFF".ToLower(), "GRAD_DIGIFILE(1)".ToLower() }; var filteredItems = (from t in orderObj.OrderItems where (t.ItemCode.ToLower().Contains("digi") && t.ParentOrderItemGuid != Guid.Empty) || FixProducts.Contains(t.ItemCode.ToLower()) select t).ToList(); #region Process Hq-DigiFile(ALL) product if (filteredItems != null) { //For the HQ-DigiFile(All) product orders has only one order item detail row. so we just copy a row to number of images //in the gallery times. because we need to link all images in gallery for customer dashboard. var selectedItem = ListAllImageDownloadOrderItems(filteredItems);// filteredItems.Where(c => c.ItemCode.ToLower().Equals("HQ-DigiFile(all)".ToLower())).ToList(); selectedItem.ForEach(x => { bool doProgessAllImaegs = AllowAllImageDownload(x.ProductId); if (x.ObjectAttributes != null) { var imageAttribute = x.ObjectAttributes.Where(c => c.AttributeCode.ToLower().Equals("imageid")).FirstOrDefault(); if (imageAttribute != null && (imageAttribute.ObjectAttributeValues != null && imageAttribute.ObjectAttributeValues.Count > 0)) { Image objImage = imageAttribute.ObjectAttributeValues[0].Value as Image; Guid tImgID = Guid.Empty; if (objImage == null) { tImgID = new Guid(imageAttribute.ObjectAttributeValues[0].Value.ToString()); } else { tImgID = objImage.ImageId; } Image img = Images.Get(AppId, tImgID); if ((tImgID != Guid.Empty && img != null) && doProgessAllImaegs == true) { var dtImage = Galleries.GetImages(AppId, img.GalleryId); if (dtImage != null) { dtImage.Rows.Cast <DataRow>().ToList().ForEach((dr) => { Guid tempImageId = Guid.Empty; Guid.TryParse(Convert.ToString(dr["ImageId"]), out tempImageId); if (tImgID.Equals(tempImageId)) { return; } OrderItem temp_OrderItem = new OrderItem(AppId) { OrderGuid = x.OrderGuid, OrderItemGuid = Guid.NewGuid(), ProductId = x.ProductId, ItemCode = x.ItemCode, ItemQuantity = x.ItemQuantity, ItemPrice = x.ItemPrice, ItemShipping = x.ItemShipping, ItemSku = x.ItemSku, ItemTitle = x.ItemTitle, ObjectAttributes = new List <ObjectAttribute>(), }; temp_OrderItem.ObjectAttributes.Clear(); temp_OrderItem.OrderItemGuid = Guid.NewGuid(); if (x.ObjectAttributes != null) { for (int i = 0; i < x.ObjectAttributes.Count; i++) { var item = x.ObjectAttributes[i]; if (!item.AttributeCode.ToLower().Equals("imageid")) { continue; } Guid oAttriD = Guid.NewGuid(); ObjectAttribute newAttribute = new ObjectAttribute(AppId) { ObjectAttributeId = oAttriD, ID = oAttriD, AttributeCode = item.AttributeCode, AttributeId = item.AttributeId, AttributeID = item.AttributeID }; if (item.ObjectAttributeValues != null && item.ObjectAttributeValues.Count > 0) { ObjectAttributeValue oavAttribute = new ObjectAttributeValue(AppId); oavAttribute.ObjectAttributeValueId = Guid.NewGuid(); oavAttribute.ID = oavAttribute.ObjectAttributeValueId; oavAttribute.ObjectAttributeID = newAttribute.ObjectAttributeId; oavAttribute.Value = tempImageId.ToString(); newAttribute.ObjectAttributeValues.Clear(); newAttribute.ObjectAttributeValues.Add(oavAttribute); } temp_OrderItem.ObjectAttributes.Remove(item); temp_OrderItem.ObjectAttributes.Add(newAttribute); filteredItems.Add(temp_OrderItem); } } }); } } } } }); } #endregion filteredItems.ForEach((x) => { if (x.ObjectAttributes != null) { var imageAttribute = x.ObjectAttributes.Where(c => c.AttributeCode.ToLower().Equals("imageid")).FirstOrDefault(); if (imageAttribute != null && (imageAttribute.ObjectAttributeValues != null && imageAttribute.ObjectAttributeValues.Count > 0)) { Image objImage = imageAttribute.ObjectAttributeValues[0].Value as Image; Guid tImgID = Guid.Empty; if (objImage == null) { tImgID = new Guid(imageAttribute.ObjectAttributeValues[0].Value.ToString()); } else { tImgID = objImage.ImageId; } if ((allNonRetouchImages.Where(v => v.ImageId == tImgID).Count() == 0)) { allNonRetouchImages.Add(new RetouchedImageInfo { ImageId = tImgID, OrderId = orderObj.OrderId, orderItem = x //it is order item }); allItemsWithImages.Add(new RetouchedImageInfo { ImageId = tImgID, OrderId = orderObj.OrderId, orderItem = x //it is order item }); } } } }); //Step 2: Get all retouch product with image var all_retouchProduct = (from t in orderObj.OrderItems where RetouchOptionsList.Contains(t.ProductId) select t).ToList(); all_retouchProduct.ForEach((x) => { if (x.ObjectAttributes != null) { var imageAttribute = x.ObjectAttributes.Where(c => c.AttributeCode.ToLower().Equals("imageid")).FirstOrDefault(); if (imageAttribute != null && (imageAttribute.ObjectAttributeValues != null && imageAttribute.ObjectAttributeValues.Count > 0)) { Image objImage = imageAttribute.ObjectAttributeValues[0].Value as Image; Guid tImgID = Guid.Empty; if (objImage == null) { tImgID = new Guid(imageAttribute.ObjectAttributeValues[0].Value.ToString()); } else { tImgID = objImage.ImageId; } if ((allRetouchImages.Where(v => v.ImageId == tImgID).Count() == 0)) { allRetouchImages.Add(new RetouchedImageInfo { ImageId = tImgID, OrderId = orderObj.OrderId, orderItem = x //it is order item }); allItemsWithImages.Add(new RetouchedImageInfo { ImageId = tImgID, OrderId = orderObj.OrderId, orderItem = x //it is order item }); } } } }); //Step 3: Gell all images var objImageAtt = (from t in filteredItems where t.ObjectAttributes != null select t.ObjectAttributes.Where(x => x.AttributeCode.ToLower() == "imageid").FirstOrDefault()).ToList(); //Step 3: Get image id aginst the digtal order has been placed Guid imgID = Guid.Empty; InsertLog(DateTime.Now + " : Number of images to link for order number " + OrderNumber + " is " + objImageAtt.Count); objImageAtt.ForEach((c) => { if (c.ObjectAttributeValues != null && c.ObjectAttributeValues.Count > 0) { Image objImage = c.ObjectAttributeValues[0].Value as Image; if (objImage == null) { imgID = new Guid(c.ObjectAttributeValues[0].Value.ToString()); // = imgID; } else { imgID = objImage.ImageId; } if (imgID != Guid.Empty /*&& !imageIds.Contains(imgID)*/) { try { RetouchedImageInfo objRetouchImage = null; RetouchedImageInfo objNonRetouchImage = null; string Path = Images.GetEncryptedURLWithParameters(AppId, imgID, 4); InsertLog(DateTime.Now + " : Getting Image Data for order number " + OrderNumber + " and image ID : " + imgID); Image img = Images.Get(AppId, imgID); byte[] imageBytes = null; bool HasRetouched = false; if (allRetouchImages.Where(x => x.ImageId == imgID).Count() == 0 && img.OriginalAvailable == true)//if it is a retouch image { imageBytes = GetImageData(Path); objNonRetouchImage = allNonRetouchImages.Where(x => x.ImageId == imgID).FirstOrDefault(); HasRetouched = false; } else if (allRetouchImages.Where(x => x.ImageId == imgID).Count() > 0 && img.OriginalAvailable == true) // if image has to be retouched { /*For Retouched image no needs to be get byte data because they are manually uploaded from admin digital order detail page.*/ //if (img.OriginalAvailable) // Path = Images.GetEncryptedURLWithParameters(SiteWeb.AppId, imgID, 4);//get original image byte[] //else // Path = Images.GetEncryptedURLWithParameters(SiteWeb.AppId, imgID, 2);// get mid image byte[] //imageBytes = GetImageData(Path); objRetouchImage = allRetouchImages.Where(x => x.ImageId == imgID).FirstOrDefault(); HasRetouched = true; } UploadImageToS3 uplFile = new UploadImageToS3(); uplFile.BucketName = BucketName; uplFile.ImageExt = img.Extension; uplFile.ImageSize = img.Size; uplFile.FolderName = orderObj.OrderId.ToString(); uplFile.ImageName = img.Name; uplFile.ImageId = imgID; uplFile.UploadedDate = DateTime.Now; var S3UploadedImgDetails = uplFile.GetImageDetailsOfS3(BucketName, orderObj.OrderId.ToString()).Where(p => p.ImageId == imgID && p.FolderName == orderObj.OrderId.ToString() && p.ProductId == (HasRetouched? objRetouchImage.orderItem.ProductId : objNonRetouchImage.orderItem.ProductId)).FirstOrDefault(); if (S3UploadedImgDetails == null) { if (imageBytes != null && imageBytes.Length > 0 && HasRetouched == false) { InsertLog(DateTime.Now + " : Auto linking image for order number " + OrderNumber + " and image : " + img.Name + " and ID : " + imgID); #region SaveFileRefrence byte[] objData = imageBytes; uplFile.FileContent = objData; uplFile.CanDownload = true;// if it is not be retouched then we can set download imge permission InsertLog(DateTime.Now + " : Processing Iamge on bucket " + OrderNumber + " and image : " + img.Name + " and ID : " + imgID); bool digiFileStatus = uplFile.DoProcessing(uplFile); if (digiFileStatus == true && uploadedDigiFiles == false) { uploadedDigiFiles = true; } #endregion string itemCode = string.Empty; Guid productId = Guid.Empty; int noOfPose = 1; Guid orderItemId = Guid.Empty; if (objNonRetouchImage != null) { orderItemId = objNonRetouchImage.orderItem != null ? objNonRetouchImage.orderItem.OrderItemGuid : Guid.Empty; itemCode = objNonRetouchImage.orderItem != null ? objNonRetouchImage.orderItem.ItemCode : string.Empty; productId = objNonRetouchImage.orderItem != null ? objNonRetouchImage.orderItem.ProductId : Guid.Empty; noOfPose = objNonRetouchImage.orderItem.ObjectAttributes != null ? GetNoOfPose(objNonRetouchImage.orderItem.ObjectAttributes) : 1; } uplFile.DigitalFileNeedsToBeRetouched(orderObj.OrderId, img.ImageId, img.OriginalFileName, HasRetouched, userName, "Auto Link", itemCode, productId, noOfPose, orderItemId, Path); InsertLog(DateTime.Now + " : Auto linking image complete for order number " + OrderNumber + " and image : " + img.Name + " and ID : " + imgID + " and added to Retouch History table"); } else if (HasRetouched == true) { uplFile.CanDownload = false;// if it is not be retouched then we can set download imge permission string itemCode = string.Empty; Guid productId = Guid.Empty; int noOfPose = 1; Guid orderItemId = Guid.Empty; if (objRetouchImage != null) { orderItemId = objRetouchImage.orderItem != null ? objRetouchImage.orderItem.OrderItemGuid : Guid.Empty; itemCode = objRetouchImage.orderItem != null ? objRetouchImage.orderItem.ItemCode : string.Empty; productId = objRetouchImage.orderItem != null ? objRetouchImage.orderItem.ProductId : Guid.Empty; noOfPose = objRetouchImage.orderItem.ObjectAttributes != null ? GetNoOfPose(objRetouchImage.orderItem.ObjectAttributes) : 1; } InsertLog(DateTime.Now + " : Image with retouch found for order number " + OrderNumber + " and image : " + img.Name + " and ID : " + imgID + " and added to Retouch History table"); //bool digiFileStatus = uplFile.SaveImageDetailForS3(uplFile); //if (digiFileStatus == true) uplFile.DigitalFileNeedsToBeRetouched(orderObj.OrderId, img.ImageId, img.OriginalFileName, HasRetouched, userName, "Image needs to be retouched", itemCode, productId, noOfPose, orderItemId, string.Empty); } else { if (imageBytes != null) { uplFile.FileContent = imageBytes; uplFile.CanDownload = true; } string itemCode = string.Empty; Guid productId = Guid.Empty; int noOfPose = 1; Guid orderItemId = Guid.Empty; var allImg = allItemsWithImages.Where(x => x.ImageId == imgID).FirstOrDefault(); if (allImg != null) { orderItemId = allImg.orderItem != null ? allImg.orderItem.OrderItemGuid : Guid.Empty; itemCode = allImg.orderItem != null ? allImg.orderItem.ItemCode : string.Empty; productId = allImg.orderItem != null ? allImg.orderItem.ProductId : Guid.Empty; noOfPose = allImg.orderItem.ObjectAttributes != null ? GetNoOfPose(allImg.orderItem.ObjectAttributes) : 1; } InsertLog(DateTime.Now + " : Original Image not found for order number " + OrderNumber + " and image : " + img.Name + " and ID : " + imgID + " and added to Retouch History table"); //bool digiFileStatus = uplFile.SaveImageDetailForS3(uplFile); //if (digiFileStatus == true) uplFile.DigitalFileNeedsToBeRetouched(orderObj.OrderId, img.ImageId, img.OriginalFileName, HasRetouched, userName, (HasRetouched == true ? "Image needs to be retouched" : (img.OriginalAvailable ? "" : "Original image not available")), itemCode, productId, noOfPose, orderItemId, string.Empty); } imageIds.Add(imgID); } } catch { } } } }); if (uploadedDigiFiles == true) { Orders.UpdateDigiFileStatus(orderObj.OrderId, (int)PhotoApp.Web.Ecommerce.OrderStatus.Custom5, "Uploaded", "System"); LoadNotificationTemplate(orderObj, OrderNumber); if (orderObj.Status == OrderStatus.NewOrder) { Orders.UpdateStatus(AppId, orderObj.OrderId, OrderStatus.DigitalDownloadOnly); } } } } catch (Exception ex) { InsertLog("\nDate :" + DateTime.Now + " Error while updating digital file status " + ex.Message); } return(uploadedDigiFiles); }
private async Task <string> GetPluginLogLevelSystemAttributeValue() { ObjectAttributeValue logLevelAttribute = await this.metadataServiceClient.GetSystemAttributeAsync(AttributeNames.HierarchicalPluginLogLevel); return(logLevelAttribute?.AttributeValue); }