コード例 #1
0
        public async Task <string> Save(int processId, int placeId)
        {
            string res = "OK";

            if (res == "OK")
            {
                List <Task <string> > SaveTasks = new List <Task <string> >();

                foreach (PartUsage pu in Items)
                {
                    pu.ProcessId = processId;
                    pu.PlaceId   = placeId;
                    if (pu.PartUsageId == 0)
                    {
                        pu.CreatedBy = RuntimeSettings.CurrentUser.UserId;
                        SaveTasks.Add(pu.Add());
                    }
                    else
                    {
                        //if (!pu.IsSaved)
                        //{
                        SaveTasks.Add(pu.Edit());
                        //}
                    }
                }
                if (RemovedItems.Any())
                {
                    foreach (PartUsage pu in RemovedItems)
                    {
                        SaveTasks.Add(pu.Remove());
                    }
                }

                IEnumerable <string> results = await Task.WhenAll <string>(SaveTasks);

                for (int i = RemovedItems.Count; i > 0; i--)
                {
                    if (RemovedItems[i - 1].IsSaved)
                    {
                        RemovedItems.Remove(RemovedItems[i - 1]);
                    }
                }
                Task.Run(() => TakeSnapshot());
                if (results.Where(r => r != "OK").Any())
                {
                    return(string.Join("; ", results.Where(r => r != "OK")));
                }
                else
                {
                    return("OK");
                }
            }
            return(res);
        }
コード例 #2
0
        public async Task <string> Save(int?processId = null, int?partId = null, int?placeId = null)
        {
            string res = "OK";

            if (res == "OK")
            {
                List <Task <string> > SaveTasks = new List <Task <string> >();

                foreach (File f in Items)
                {
                    if (f.FileId == 0)
                    {
                        f.CreatedBy = RuntimeSettings.CurrentUser.UserId;
                        f.CreatedOn = DateTime.Now;
                        try
                        {
                            f.Type = System.IO.Path.GetExtension(f.Link).Substring(1, 3);
                            var s = new System.IO.FileInfo(f.Link);
                            f.Size = s.Length;
                        }catch (Exception ex)
                        {
                        }
                        if (processId != null)
                        {
                            SaveTasks.Add(f.Add($"ProcessId={processId}"));
                        }
                        else if (partId != null)
                        {
                            SaveTasks.Add(f.Add($"PartId={partId}"));
                        }
                        else if (placeId != null)
                        {
                            SaveTasks.Add(f.Add($"PlaceId={placeId}"));
                        }
                    }
                    else
                    {
                        //if (!pu.IsSaved)
                        //{
                        //SaveTasks.Add(f.Edit());
                        //}
                    }
                }
                if (RemovedItems.Any())
                {
                    foreach (File f in RemovedItems)
                    {
                        SaveTasks.Add(f.Remove());
                    }
                }

                IEnumerable <string> results = await Task.WhenAll <string>(SaveTasks);

                for (int i = RemovedItems.Count; i > 0; i--)
                {
                    if (RemovedItems[i - 1].IsSaved)
                    {
                        RemovedItems.Remove(RemovedItems[i - 1]);
                    }
                }
                FileKeeper.Items = Items;
                FileKeeper.AddToUploadQueue();
                Task.Run(() => TakeSnapshot());
                if (results.Where(r => r != "OK").Any())
                {
                    return(string.Join("; ", results.Where(r => r != "OK")));
                }
                else
                {
                    return("OK");
                }
            }
            return(res);
        }