Ejemplo n.º 1
0
        public async Task <IActionResult> Edit(int id, [Bind("Id,DptId,UserName")] EngsInDeptsModel engsInDeptsModel)
        {
            if (id != engsInDeptsModel.EngId)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(engsInDeptsModel);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!EngsInDeptsModelExists(engsInDeptsModel.EngId))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            ViewData["Id"]    = new SelectList(_context.AppUsers, "Id", "Email", engsInDeptsModel.EngId);
            ViewData["DptId"] = new SelectList(_context.Departments, "DptId", "DptId", engsInDeptsModel.DptId);
            return(View(engsInDeptsModel));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> EditEngList(List <EngsInDeptsViewModel> data, string AsignEngId,
                                                      string QueryEngId, string QueryBuildingId, string QueryFloorId)
        {
            // Get Login User's details.
            var user = _userRepo.Find(u => u.UserName == this.User.Identity.Name).FirstOrDefault();
            /* Target engineer ID. */
            int asignEngId = Convert.ToInt32(AsignEngId);

            try
            {
                /* Deal all input data. */
                foreach (var item in data)
                {
                    /* Create or edit the selected row data. */
                    if (item.IsSelected == true)
                    {
                        /* Insert values to engsInDeptsModel to save or create. */
                        EngsInDeptsModel engsInDeptsModel = new EngsInDeptsModel
                        {
                            EngId      = asignEngId,
                            BuildingId = item.BuildingId,
                            FloorId    = item.FloorId,
                            PlaceId    = item.PlaceId,
                            DptId      = _context.AppUsers.Find(asignEngId).DptId,
                            UserName   = _context.AppUsers.Find(asignEngId).UserName
                                         //Rtp = user.Id,
                                         //Rtt = DateTime.UtcNow.AddHours(08)
                        };
                        /* If data isn't in the database, create data.*/
                        if (item.EngId == null)
                        {
                            _context.Add(engsInDeptsModel);
                        }
                        else
                        {
                            /* If data exist, find and delete old data, then create a new one. */
                            int engId      = item.EngId.GetValueOrDefault();
                            var originData = _context.EngsInDepts.Find(engId, item.BuildingId, item.FloorId, item.PlaceId);
                            if (originData.EngId != asignEngId)
                            {
                                _context.Remove(originData);
                                _context.Add(engsInDeptsModel);
                            }
                        }
                    }
                }
                await _context.SaveChangesAsync();
            }
            catch (Exception e)
            {
                var msg = "資料更新錯誤!";
                return(StatusCode(500, msg));
            }
            return(RedirectToAction("GetEngList", new { EngineerId = QueryEngId, BuildingId = QueryBuildingId, FloorId = QueryFloorId }));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> Create([Bind("Id,DptId,UserName")] EngsInDeptsModel engsInDeptsModel)
        {
            if (ModelState.IsValid)
            {
                _context.Add(engsInDeptsModel);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            ViewData["Id"]    = new SelectList(_context.AppUsers, "Id", "Email", engsInDeptsModel.EngId);
            ViewData["DptId"] = new SelectList(_context.Departments, "DptId", "DptId", engsInDeptsModel.DptId);
            return(View(engsInDeptsModel));
        }