Exemple #1
0
        public ActionResult DetailMovement(int?id)
        {
            var detailMovements = _context.DetailPrograms.Where(a => a.ProgramId == id).ToList();
            var viewmodel       = new ProgramDetailViewModel
            {
                detailProg = detailMovements
            };

            ViewBag.ProgId = id;
            return(View("/Views/Movement/MovementDetail.cshtml", viewmodel));
        }
 private void Modal_ProgramUploadEvent(ProgramDetailViewModel obj)
 {
     currentProgramDetail = obj;
     RealReadWriterEvent?.Invoke(new HubReadWriterModel()
     {
         ProxyName = "ProgramTransferInOut",
         Action    = "UploadProgramToCNC",
         Id        = "uploadProgramToCNC",
         Data      = new object[] { lpViewModel.SelectedProgramViewModel?.FillName, obj.SelectedProgramFolders.Folder }
     });
 }
Exemple #3
0
        public void SetSelectProgramDetail(ProgramDetailViewModel pds)
        {
            upLoadProViewModel.ProgramDetail = pds;

            if (!string.IsNullOrEmpty(pds.Material))
            {
                upLoadProViewModel.SelectedMaterialId = (int)upLoadProViewModel.MaterialTypeList.FirstOrDefault(n => n.Name_CN == pds.Material)?.Code;
            }
            if (!string.IsNullOrEmpty(pds.NozzleKind))
            {
                upLoadProViewModel.SelectedNozzleKindCode = (int)upLoadProViewModel.NozzleKindList.FirstOrDefault(n => n.Name_CN == pds.NozzleKind)?.Code;
            }
        }
Exemple #4
0
        public async Task <IActionResult> Edit(int id)
        {
            try
            {
                PageTitle = "Edit Program";

                var site = await GetCurrentSiteAsync();

                var siteUrl = await _siteService.GetBaseUrl(Request.Scheme, Request.Host.Value);

                var program = await _siteService.GetProgramByIdAsync(id);

                var dailyLiteracyTipList = await _dailyLiteracyTipService.GetListAsync();

                var pointTranslationList = await _pointTranslationService.GetListAsync();

                var viewModel = new ProgramDetailViewModel()
                {
                    Program   = program,
                    Action    = nameof(Edit),
                    AgeValues = Convert.ToInt32(program.AskAge)
                                + Convert.ToInt32(program.AgeRequired),
                    SchoolValues = Convert.ToInt32(program.AskSchool)
                                   + Convert.ToInt32(program.SchoolRequired),
                    BadgeMakerUrl        = GetBadgeMakerUrl(siteUrl, site.FromEmailAddress),
                    UseBadgeMaker        = true,
                    DailyLiteracyTipList = new SelectList(dailyLiteracyTipList, "Id", "Name"),
                    PointTranslationList = new SelectList(pointTranslationList, "Id",
                                                          "TranslationName")
                };

                if (program.JoinBadgeId.HasValue)
                {
                    var badge = await _badgeService.GetByIdAsync(program.JoinBadgeId.Value);

                    if (badge != null)
                    {
                        viewModel.BadgePath    = _pathResolver.ResolveContentPath(badge.Filename);
                        viewModel.BadgeAltText = badge.AltText;
                    }
                }

                return(View("Detail", viewModel));
            }
            catch (GraException gex)
            {
                ShowAlertDanger("Unable to view program :", gex);
                return(RedirectToAction(nameof(Index)));
            }
        }
Exemple #5
0
        public async Task <IActionResult> Create()
        {
            PageTitle = "Create Program";

            var site = await GetCurrentSiteAsync();

            var siteUrl = await _siteService.GetBaseUrl(Request.Scheme, Request.Host.Value);

            var dailyLiteracyTipList = await _dailyLiteracyTipService.GetListAsync();

            var pointTranslationList = await _pointTranslationService.GetListAsync();

            var viewModel = new ProgramDetailViewModel()
            {
                Action               = nameof(Create),
                BadgeMakerUrl        = GetBadgeMakerUrl(siteUrl, site.FromEmailAddress),
                UseBadgeMaker        = true,
                DailyLiteracyTipList = new SelectList(dailyLiteracyTipList, "Id", "Name"),
                PointTranslationList = new SelectList(pointTranslationList, "Id", "TranslationName")
            };

            return(View("Detail", viewModel));
        }
Exemple #6
0
        public async Task <IActionResult> Edit(ProgramDetailViewModel model)
        {
            var currentProgram = await _siteService.GetProgramByIdAsync(model.Program.Id);

            if (string.IsNullOrWhiteSpace(model.Program.JoinBadgeName) &&
                (!string.IsNullOrWhiteSpace(model.BadgeMakerImage) ||
                 model.BadgeUploadImage != null ||
                 currentProgram.JoinBadgeId.HasValue))
            {
                ModelState.AddModelError("Program.JoinBadgeName", "Please provide a name for the badge");
            }

            if (!string.IsNullOrWhiteSpace(model.Program.JoinBadgeName) &&
                string.IsNullOrWhiteSpace(model.BadgeMakerImage) &&
                model.BadgeUploadImage == null &&
                currentProgram.JoinBadgeId.HasValue == false)
            {
                ModelState.AddModelError("BadgemakerImage", "Please provide an image for the badge.");
            }

            if (model.BadgeUploadImage != null &&
                (string.IsNullOrWhiteSpace(model.BadgeMakerImage) || !model.UseBadgeMaker) &&
                (Path.GetExtension(model.BadgeUploadImage.FileName).ToLower() != ".jpg" &&
                 Path.GetExtension(model.BadgeUploadImage.FileName).ToLower() != ".jpeg" &&
                 Path.GetExtension(model.BadgeUploadImage.FileName).ToLower() != ".png"))
            {
                ModelState.AddModelError("BadgeUploadImage", "Please use a .jpg or .png image.");
            }

            if (model.Program.AgeMaximum < model.Program.AgeMinimum)
            {
                ModelState.AddModelError("Program.AgeMaximum", "The maximum age cannot be lower than the minimum age.");
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (model.BadgeUploadImage != null ||
                        !string.IsNullOrWhiteSpace(model.BadgeMakerImage))
                    {
                        byte[] badgeBytes;
                        string filename;
                        if (!string.IsNullOrWhiteSpace(model.BadgeMakerImage) &&
                            (model.BadgeUploadImage == null || model.UseBadgeMaker))
                        {
                            var badgeString = model.BadgeMakerImage.Split(',').Last();
                            badgeBytes = Convert.FromBase64String(badgeString);
                            filename   = "badge.png";
                        }
                        else
                        {
                            using (var fileStream = model.BadgeUploadImage.OpenReadStream())
                            {
                                using (var ms = new MemoryStream())
                                {
                                    fileStream.CopyTo(ms);
                                    badgeBytes = ms.ToArray();
                                }
                            }
                            filename = Path.GetFileName(model.BadgeUploadImage.FileName);
                        }
                        if (model.Program.JoinBadgeId.HasValue)
                        {
                            var existing = await _badgeService
                                           .GetByIdAsync(model.Program.JoinBadgeId.Value);

                            existing.Filename = Path.GetFileName(model.BadgePath);
                            await _badgeService.ReplaceBadgeFileAsync(existing, badgeBytes);
                        }
                        else
                        {
                            var newBadge = new Badge
                            {
                                Filename = filename
                            };
                            var badge = await _badgeService.AddBadgeAsync(newBadge, badgeBytes);

                            model.Program.JoinBadgeId = badge.Id;
                        }
                    }
                    if (!string.IsNullOrWhiteSpace(model.Program.JoinBadgeName))
                    {
                        model.Program.JoinBadgeName = model.Program.JoinBadgeName.Trim();
                    }

                    model.Program.AskAge         = model.AgeValues >= 1;
                    model.Program.AgeRequired    = model.AgeValues == 2;
                    model.Program.AskSchool      = model.SchoolValues >= 1;
                    model.Program.SchoolRequired = model.SchoolValues == 2;
                    model.Program.Name           = model.Program.Name.Trim();
                    await _siteService.UpdateProgramAsync(model.Program);

                    ShowAlertSuccess($"Saved Program \"{model.Program.Name}\"!");
                    return(RedirectToAction(nameof(Edit), new { id = model.Program.Id }));
                }
                catch (GraException gex)
                {
                    ShowAlertDanger("Unable to edit Program: ", gex);
                }
            }
            var dailyLiteracyTipList = await _dailyLiteracyTipService.GetListAsync();

            var pointTranslationList = await _pointTranslationService.GetListAsync();

            model.DailyLiteracyTipList = new SelectList(dailyLiteracyTipList, "Id", "Name");
            model.PointTranslationList = new SelectList(pointTranslationList, "Id",
                                                        "TranslationName");
            PageTitle = "Edit Program";
            return(View("Detail", model));
        }
        public async Task <IActionResult> Create(ProgramDetailViewModel model)
        {
            byte[] badgeBytes = null;

            if (!string.IsNullOrWhiteSpace(model.Program.JoinBadgeName) ||
                !string.IsNullOrWhiteSpace(model.BadgeMakerImage) ||
                model.BadgeUploadImage != null)
            {
                if (string.IsNullOrWhiteSpace(model.Program.JoinBadgeName))
                {
                    ModelState.AddModelError("Program.JoinBadgeName", "Please provide a name for the badge");
                }
                if (string.IsNullOrWhiteSpace(model.BadgeMakerImage) && model.BadgeUploadImage == null)
                {
                    ModelState.AddModelError("BadgePath", "Please provide an image for the badge.");
                }
                else if (model.BadgeUploadImage != null &&
                         (string.IsNullOrWhiteSpace(model.BadgeMakerImage) || !model.UseBadgeMaker))
                {
                    if (!ValidImageExtensions.Contains(
                            Path.GetExtension(model.BadgeUploadImage.FileName).ToLowerInvariant()))
                    {
                        ModelState.AddModelError("BadgeUploadImage", $"Image must be one of the following types: {string.Join(", ", ValidImageExtensions)}");
                    }

                    try
                    {
                        using (var ms = new MemoryStream())
                        {
                            await model.BadgeUploadImage.CopyToAsync(ms);

                            badgeBytes = ms.ToArray();
                        }
                        await _badgeService.ValidateBadgeImageAsync(badgeBytes);
                    }
                    catch (GraException gex)
                    {
                        ModelState.AddModelError("BadgeUploadImage", gex.Message);
                    }
                }
            }

            if (model.Program.AgeMaximum < model.Program.AgeMinimum)
            {
                ModelState.AddModelError("Program.AgeMaximum", "The maximum age cannot be lower than the minimum age.");
            }

            if (ModelState.IsValid)
            {
                try
                {
                    if (model.BadgeUploadImage != null ||
                        !string.IsNullOrWhiteSpace(model.BadgeMakerImage))
                    {
                        string filename;
                        if (!string.IsNullOrWhiteSpace(model.BadgeMakerImage) &&
                            (model.BadgeUploadImage == null || model.UseBadgeMaker))
                        {
                            var badgeString = model.BadgeMakerImage.Split(',').Last();
                            badgeBytes = Convert.FromBase64String(badgeString);
                            filename   = "badge.png";
                        }
                        else
                        {
                            if (badgeBytes == null)
                            {
                                using (var ms = new MemoryStream())
                                {
                                    await model.BadgeUploadImage.CopyToAsync(ms);

                                    badgeBytes = ms.ToArray();
                                }
                            }
                            filename = Path.GetFileName(model.BadgeUploadImage.FileName);
                        }
                        var newBadge = new Badge
                        {
                            Filename = filename
                        };
                        var badge = await _badgeService.AddBadgeAsync(newBadge, badgeBytes);

                        model.Program.JoinBadgeId   = badge.Id;
                        model.Program.JoinBadgeName = model.Program.JoinBadgeName.Trim();
                    }

                    model.Program.AskAge         = model.AgeValues >= 1;
                    model.Program.AgeRequired    = model.AgeValues == 2;
                    model.Program.AskSchool      = model.SchoolValues >= 1;
                    model.Program.SchoolRequired = model.SchoolValues == 2;
                    model.Program.Name           = model.Program.Name.Trim();
                    var program = await _siteService.AddProgramAsync(model.Program);

                    ShowAlertSuccess($"Added Program \"{program.Name}\"!");
                    return(RedirectToAction(nameof(Edit), new { id = program.Id }));
                }
                catch (GraException gex)
                {
                    ShowAlertDanger("Unable to add Program: ", gex);
                }
            }

            var dailyLiteracyTipList = await _dailyLiteracyTipService.GetListAsync();

            var pointTranslationList = await _pointTranslationService.GetListAsync();

            model.DailyLiteracyTipList = new SelectList(dailyLiteracyTipList, "Id", "Name");
            model.PointTranslationList = new SelectList(pointTranslationList, "Id",
                                                        "TranslationName");
            PageTitle = "Create Program";
            return(View("Detail", model));
        }
Exemple #8
0
 private void UpLoadProViewModel_GetDetailModelEvent(ProgramDetailViewModel obj)
 {
     obj.FileHashCode           = fileHash;
     obj.SelectedProgramFolders = ((ReadProgramFolderItemViewModel)this.CNCPathCascader.SelectedValues[this.CNCPathCascader.SelectedValues.Count - 1]);
     ProgramUploadEvent?.Invoke(obj);
 }
        public void DoWork(HubReadWriterResultModel resultModel)
        {
            if (resultModel.Id == "ReadProgramEvent")
            {
                JObject jObject = JObject.Parse(resultModel.Result.ToString());
                if (jObject != null && modalControl != null)
                {
                    var obj = new ProgramDetailViewModel
                    {
                        Name                = jObject["name"]?.ToString(),
                        FullPath            = jObject["fullPath"]?.ToString(),
                        Size                = Convert.ToDouble(jObject["size"]?.ToString()),
                        Material            = jObject["material"]?.ToString(),
                        Thickness           = Convert.ToDouble(jObject["thickness"] ?? "0"),
                        Gas                 = jObject["gas"]?.ToString(),
                        FocalPosition       = Convert.ToDouble(jObject["focalPosition"] ?? "0"),
                        NozzleKind          = jObject["nozzleKind"]?.ToString(),
                        NozzleDiameter      = Convert.ToDouble(jObject["nozzleDiameter"] ?? "0"),
                        PlateSizeHeight     = Convert.ToDouble(jObject["plateSize_H"] ?? "0"),
                        UsedPlateSizeHeigth = Convert.ToDouble(jObject["usedPlateSize_H"] ?? "0"),
                        PlateSizeWidth      = Convert.ToDouble(jObject["plateSize_W"] ?? "0"),
                        UsedPlateSizeWidth  = Convert.ToDouble(jObject["usedPlateSize_W"] ?? "0"),
                        CuttingDistance     = Convert.ToDouble(jObject["cuttingDistance"] ?? "0"),
                        PiercingCount       = Convert.ToInt32(jObject["piercingCount"] ?? "0"),
                        Max_X               = Convert.ToInt32(jObject["max_X"] ?? "0"),
                        Max_Y               = Convert.ToInt32(jObject["max_Y"] ?? "0"),
                        Min_X               = Convert.ToInt32(jObject["min_X"] ?? "0"),
                        Min_Y               = Convert.ToInt32(jObject["min_Y"] ?? "0"),
                        CuttingTime         = Convert.ToInt32(jObject["cuttingTime"] ?? "0"),
                        ThumbnaiType        = Convert.ToInt32(jObject["thumbnaiType"] ?? "0"),
                        ThumbnaiInfo        = jObject["thumbnaiInfo"]?.ToString()
                    };
                    modalControl.SetSelectProgramDetail(obj);
                }
                return;
            }
            string name = resultModel.Result.ToString();

            Task.Factory.StartNew(new Action(() =>
            {
                EventBus.Default.Trigger(new UpdateProgramClientEventData()
                {
                    Data = new Common.UpdateProgramDto()
                    {
                        FileHash        = currentProgramDetail?.FileHashCode,
                        CuttingDistance = Convert.ToDouble(currentProgramDetail?.CuttingDistance),
                        CuttingTime     = Convert.ToDouble(currentProgramDetail?.CuttingTime),
                        FocalPosition   = Convert.ToDouble(currentProgramDetail?.FocalPosition),
                        FullPath        = currentProgramDetail?.SelectedProgramFolders.Folder,
                        Gas             = currentProgramDetail.Gas,
                        Material        = currentProgramDetail.Material,
                        Name            = name,
                        NozzleDiameter  = currentProgramDetail.NozzleDiameter,
                        NozzleKind      = currentProgramDetail.NozzleKind,
                        PiercingCount   = currentProgramDetail.PiercingCount,
                        Size            = currentProgramDetail.Size,
                        Thickness       = currentProgramDetail.Thickness,
                        UpdateTime      = DateTime.Now,
                        Max_X           = currentProgramDetail.Max_X,
                        Max_Y           = currentProgramDetail.Max_Y,
                        Min_X           = currentProgramDetail.Min_X,
                        Min_Y           = currentProgramDetail.Min_Y,
                        PlateSize_H     = currentProgramDetail.PlateSizeHeight,
                        PlateSize_W     = currentProgramDetail.PlateSizeWidth,
                        UsedPlateSize_H = currentProgramDetail.UsedPlateSizeHeigth,
                        UsedPlateSize_W = currentProgramDetail.UsedPlateSizeWidth,
                        ThumbnaiInfo    = currentProgramDetail.ThumbnaiInfo,
                        ThumbnaiType    = currentProgramDetail.ThumbnaiType
                    }
                });
            }));
            Messenger.Default.Send(new PopupMsg
            {
                IsClose = true
            });
            this.lpViewModel.LocalProgramList.FirstOrDefault(n => n.FileHash == currentProgramDetail?.FileHashCode)?.SetProgramLoad(name);
            Messenger.Default.Send(new Common.ViewModel.NotifiactionModel()
            {
                Title            = "上传成功",
                Content          = $"程序{name}上传成功!" + DateTime.Now,
                NotifiactionType = Common.ViewModel.EnumPromptType.Success
            });
        }