public IHttpActionResult Cancel(AttendanceDTO gidDto)
        {
            var userID = User.Identity.GetUserId();
            int gigID  = gidDto.gidID;
            //1    var gigInfo = _context.Gigs.Single(g => g.ID == gigID && g.ArtistID == userID);

            /* 2  var attendees = _context.Attendances
             * .Where(a => a.GigID == gigID)
             * .Select(a => a.Attendee)
             * .ToList();
             */

            // Refactor cho 2 query 1 + 2 thanh nhu ben duoi .

            var gigInfo = _unitOfWork.Gig.GetGigOnly(gigID);

            if (gigInfo == null || gigInfo.IsCancelled)
            {
                return(NotFound());
            }
            if (gigInfo.ArtistID != userID)
            {
                return(Unauthorized());
            }

            gigInfo.Cancel();
            _unitOfWork.Finish();
            return(Ok());
        }
Beispiel #2
0
        public Object SaveAttendance(List <AttendanceHistoryDTO> history)
        {
            //Check this
            //List<AttendanceHistoryDTO> attHis = JsonConvert.DeserializeObject<List<AttendanceHistoryDTO>>(history);

            for (int i = 0; i < history.Count; i++)
            {
                AttendanceHistoryDTO ahd = history.ElementAt(i);
                AttendanceHistoryDAL.Save(ahd);

                AttendanceDTO atndnc = AttendanceDAO.GetAttendanceById(ahd.AttId);
                if (ahd.HisIsPresent)
                {
                    atndnc.AttPresents++;
                }
                else
                {
                    atndnc.AttAbsents++;
                }
                AttendanceDAO.Save(atndnc);
            }

            var IsSaved = true;

            return(IsSaved);
        }
Beispiel #3
0
        public JsonResult EditAttendance(int id)
        {
            SedesolServiceClient proxy = new SedesolServiceClient();
            AttendanceDTO        data  = proxy.GetAttendanceById(id);

            return(Json(data, JsonRequestBehavior.AllowGet));
        }
Beispiel #4
0
        public IHttpActionResult PutAttendance(AttendanceDTO attendanceDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (attendanceDTO == null)
            {
                return(BadRequest("Missing values"));
            }
            //Attendance attendance = AttendanceRepo.Get(id);

            //if (date != null)
            //    attendance.AttendanceDate = date;
            //if(studentIDList.Count > 0)
            //    foreach (var studentID in collection)
            //    {
            //        if(attendance.Students.FirstOrDefault(c=> c.StudentID == studentID) != null)
            //            attendance.Students.Add()
            //    }

            //if(date != null)
            //    attendance

            //attendance.ModuleID = moduleID;

            Attendance attendance = Mapper.Map <Attendance>(attendanceDTO);

            AttendanceRepo.Update(attendance);
            AttendanceRepo.Save();


            return(StatusCode(HttpStatusCode.NoContent));
        }
Beispiel #5
0
        public JsonResult SetParamCapture(int idYear, int idMonth, int idSoupK, string soupK, string year, string month, string pFolio, string pCode)
        {
            SedesolServiceClient proxy   = new SedesolServiceClient();
            CaptureModel         cModel  = new CaptureModel();
            CaptureDTO           captDto = new CaptureDTO();
            AttendanceDTO        attDto  = new AttendanceDTO();
            UserDTO userDto = (UserDTO)Session["userData"];
            string  message = string.Empty;

            captDto.Id_Month         = idMonth;
            captDto.Id_Year          = idYear;
            captDto.Id_Soup_Kitchen  = idSoupK;
            captDto.CreateDate       = DateTime.Now;
            captDto.Description      = year + " | " + month + " | " + soupK;
            captDto.IsActive         = true;
            captDto.Id_Status        = Convert.ToInt32(ConfigurationManager.AppSettings["stIniciada"].ToString());
            captDto.Folio            = pFolio;
            captDto.InspectionCode   = pCode;
            captDto.Id_LevelApproval = userDto.UserType.Id;
            captDto.Id_User          = userDto.Id;
            cModel.Capture           = proxy.SaveCapture(captDto);

            //cModel.Capture = captDto;
            cModel.Attendance = attDto;

            Session.Add("CaptureModel", cModel);

            return(Json(new { message = cModel.Capture.Message }));
        }
Beispiel #6
0
        public IHttpActionResult PostAttendance(AttendanceDTO attendanceDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            //if (date == null || studentIDList == null || moduleID <= 0)
            //{
            //    return BadRequest("One or more parameters are missing values");
            //}

            //Attendance attendance = new Attendance { ModuleID = moduleID, AttendanceDate = date};
            Attendance attendance = Mapper.Map <Attendance>(attendanceDTO);

            AttendanceRepo.Add(attendance);


            try
            {
                AttendanceRepo.Save();
                return(Ok(attendance));
            }
            catch
            {
                return(BadRequest("Failed to add attendance"));
            }
        }
Beispiel #7
0
        public AttendanceDTO Save(AttendanceDTO dto)
        {
            AttendanceDAO b = new AttendanceDAO();

            dto = b.Save(dto);

            return(dto);
        }
Beispiel #8
0
        public async Task UpdateAsync(EditViewModel inputModel)
        {
            AttendanceDTOBuilderData builderData       = new AttendanceDTOBuilderData(inputModel);
            AttendanceDTO            updatedAttendance = dtoFactory.CreateDTO <AttendanceDTOBuilderData, AttendanceDTO>(builderData);

            attendanceService.UpdateBaseInfo(updatedAttendance);
            await attendanceService.SaveChangesAsync();
        }
Beispiel #9
0
        public async Task DeleteAsync(DeleteInputModel inputModel)
        {
            AttendanceDTOBuilderData bulderData         = new AttendanceDTOBuilderData(inputModel);
            AttendanceDTO            attendanceToRemove = dtoFactory.CreateDTO <AttendanceDTOBuilderData, AttendanceDTO>(bulderData);

            attendanceService.Delete(attendanceToRemove);
            await attendanceService.SaveChangesAsync();
        }
Beispiel #10
0
        public AttendanceDTO GetAttendanceById(int id)
        {
            AttendanceDTO dto = new AttendanceDTO();
            AttendanceDAO d   = new AttendanceDAO();

            dto = d.GetAttendanceById(id);

            return(dto);
        }
Beispiel #11
0
        public async Task <IActionResult> CreateAttendance(AttendanceDTO attDTO)
        {
            var att = _mapper.Map <Asistencia>(attDTO);
            await _attendanceService.InsertAttendance(att);

            attDTO = _mapper.Map <AttendanceDTO>(att);
            var apiResponse = new ApiResponse <AttendanceDTO>(attDTO);

            return(Ok(apiResponse));
        }
        private static AttendanceDTO FillAttendanceDTO(SqlDataReader reader)
        {
            AttendanceDTO dto = new AttendanceDTO();

            dto.AttId       = reader.GetInt32(0);
            dto.AttPresents = reader.GetInt32(1);
            dto.AttAbsents  = reader.GetInt32(2);
            dto.StuId       = reader.GetInt32(3);
            dto.CouId       = reader.GetInt32(4);
            return(dto);
        }
Beispiel #13
0
        public void Update(AttendanceDTO attendance)
        {
            List <AttendanceDTO> temp = _dbSet.Where(att => att.Id == attendance.Id).ToList();
            var dpt = temp.FirstOrDefault();

            //var entity = _dbSet.SingleOrDefault(a => a.Id == attendance.Id);

            if (dpt != null)
            {
                dpt.AttendanceStatus = attendance.AttendanceStatus;
            }
        }
Beispiel #14
0
        public bool UpdateAttendance(AttendanceDTO attendance)
        {
            var attendanceToUpdate = attendanceRepository.Query(x => x.Id == attendance.Id).FirstOrDefault();

            if (attendanceToUpdate != null)
            {
                attendanceRepository.InjectFrom(attendanceToUpdate);
                unitOfWork.Save();
                return(true);
            }
            return(false);
        }
Beispiel #15
0
        public async Task <DeleteViewModel> GetDeleteAttendanceViewModelAsync(int attendanceId)
        {
            AttendanceDTO attendance = await attendanceService.GetByIdAsync(attendanceId);

            if (attendance == null)
            {
                return(null);
            }
            DeleteViewData  viewModelData = new DeleteViewData(attendance);
            DeleteViewModel viewModel     = viewFactory.CreateView <DeleteViewData, DeleteViewModel>(viewModelData);

            return(viewModel);
        }
Beispiel #16
0
        public async Task <IHttpActionResult> GetAttendance(int id)
        {
            AttendanceDTO dto = await AttendanceService.SearchSingleAttendanceByIdAsync(id);

            if (dto != null)
            {
                return(Ok(dto));
            }
            else
            {
                return(NotFound());
            }
        }
Beispiel #17
0
        public async Task <IActionResult> Put(AttendanceDTO attDTO)
        {
            var att = _mapper.Map <Asistencia>(attDTO);
            await _attendanceService.UpdateAttendance(att);

            var cantaccepted = await _attendanceService.GetConfirmsByMeet(att.IdReunion);

            await _meetService.CalculateBeersForAcepted(att.IdReunion, cantaccepted);

            attDTO = _mapper.Map <AttendanceDTO>(att);
            var apiResponse = new ApiResponse <AttendanceDTO>(attDTO);

            return(Ok(apiResponse));
        }
Beispiel #18
0
        public async Task <int> AddAttendance(AttendanceDTO attendance)
        {
            if (attendance == null)
            {
                throw new ArgumentNullException($"Attendance cannot be null");
            }

            var newEntity = mapper.Map <Attendance>(attendance);
            await _ctx.Attendance.AddAsync(newEntity);

            await _ctx.SaveChangesAsync();

            return(newEntity.AttendanceId);
        }
        public async Task <ActionResult> ModifyAttendance([FromBody] AttendanceModDTO attendance)
        {
            if (AttendanceExists(attendance.RecordID))
            {
                // Call BLL method to run validation
                object BLLResponse = new AttendanceBLL(_context).ModifyAttendanceBLL(attendance: attendance, userClaims: User);

                if (BLLResponse.GetType().BaseType == typeof(Exception))
                {
                    // Create log entries for Debug log
                    ((APIException)BLLResponse).Exceptions.ForEach(ex => Logger.Msg <AttendancesController>((Exception)ex, Serilog.Events.LogEventLevel.Debug));

                    // Return response from API
                    return(BadRequest(new { errors = ((APIException)BLLResponse).Exceptions.Select(x => x.Message).ToArray() }));
                }
                else
                {
                    try
                    {
                        // Cast the response to the correct type
                        AttendanceModDTO modAttendanceRecord = (AttendanceModDTO)BLLResponse;

                        // Modify the Attendance Record
                        Attendance attendanceRecord = _context.AttendanceRecords.Where(x => x.RecordID == modAttendanceRecord.RecordID).First();

                        attendanceRecord.AttendanceStateID = attendance.AttendanceStateID;
                        attendanceRecord.Comment           = attendance.Comment;

                        // Save changes
                        await _context.SaveChangesAsync();

                        Logger.Msg <AttendancesController>($"[{User.FindFirstValue("email")}] [MODIFY] attendance RecordID '{attendanceRecord.RecordID}' updated", Serilog.Events.LogEventLevel.Information);
                        AttendanceDTO response = new AttendanceDTO(attendanceRecord);
                        return(Ok(response));
                    }
                    catch (Exception ex)
                    {
                        // Local log entry. Database reconciliation issues are more serious so reported as Error
                        Logger.Msg <AttendancesController>($"[MODIFY] Database sync error {ex.Message}", Serilog.Events.LogEventLevel.Error);

                        // Return response to client
                        return(StatusCode(500, new { errors = "Database update failed. Contact the administrator to resolve this issue." }));
                    }
                }
            }
            else
            {
                return(NotFound());
            }
        } // End of ModifyAttendance
Beispiel #20
0
        public IHttpActionResult GetAttendance(int id)
        {
            Attendance Attendance = AttendanceRepo.Get(id);

            if (Attendance == null)
            {
                return(NotFound());
            }



            AttendanceDTO AttendanceDTO = Mapper.Map <AttendanceDTO>(Attendance);

            return(Ok(AttendanceDTO));
        }
        public static AttendanceDTO GetAttendanceByStuIdAndCouId(int StuId, int CouId)
        {
            String sqlQuery = String.Format("Select * from Attendance where StuId={0} And CouId={1}", StuId, CouId);

            using (DBHelper helper = new DBHelper())
            {
                var           reader = helper.ExecuteReader(sqlQuery);
                AttendanceDTO dto    = null;
                if (reader.Read())
                {
                    dto = FillAttendanceDTO(reader);
                }
                return(dto);
            }
        }
        public IHttpActionResult GetAttendance(int id)
        {
            Attendance Attendance = (Attendance)attendanceRepo.Find(id);

            if (Attendance == null)
            {
                return(NotFound());
            }

            Mapper.Initialize(c => c.CreateMap <Attendance, AttendanceDTO>());

            AttendanceDTO AttendanceDTO = Mapper.Map <AttendanceDTO>(Attendance);

            return(Ok(AttendanceDTO));
        }
        public IHttpActionResult PostAttendance(AttendanceDTO AttendanceDTO)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Mapper.Initialize(c => c.CreateMap <AttendanceDTO, Attendance>());

            Attendance Attendance = Mapper.Map <Attendance>(AttendanceDTO);

            attendanceRepo.Add(Attendance);
            attendanceRepo.Save();

            return(CreatedAtRoute("DefaultApi", new { id = Attendance.ID }, Attendance));
        }
Beispiel #24
0
        public static StudentDTO GetStudentByStuAndCouId(int Id, int CouId)
        {
            String sqlQuery = String.Format("Select * from Student where StuId={0}", Id);

            using (DBHelper helper = new DBHelper())
            {
                var        reader = helper.ExecuteReader(sqlQuery);
                StudentDTO dto    = null;
                if (reader.Read())
                {
                    dto = FillStudentDTO(reader);
                    AttendanceDTO attendance = AttendanceDAO.GetAttendanceByStuIdAndCouId(Id, CouId);
                    dto.StuAttendance = attendance;
                }
                return(dto);
            }
        }
Beispiel #25
0
        public async Task <IHttpActionResult> UpdateAttendance([FromBody] AttendanceDTO AttendanceModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }
            var updatedAttendance = await AttendanceService.UpdateAttendanceAsync(AttendanceModel);

            if (updatedAttendance != null)
            {
                return(Ok(updatedAttendance));
            }
            else
            {
                return(NotFound());
            }
        }
        public async Task <ActionResult> AddAttendance([FromBody] AttendanceDTO attendance)
        {
            // Call BLL method to run validation
            object BLLResponse = new AttendanceBLL(_context).AddAttendanceBLL(attendance: attendance, userClaims: User);

            if (BLLResponse.GetType().BaseType == typeof(Exception))
            {
                // Create log entries for Debug log
                ((APIException)BLLResponse).Exceptions.ForEach(ex => Logger.Msg <AttendancesController>((Exception)ex, Serilog.Events.LogEventLevel.Debug));

                // Return response from API
                return(BadRequest(new { errors = ((APIException)BLLResponse).Exceptions.Select(x => x.Message).ToArray() }));
            }
            else
            {
                try
                {
                    Attendance newAttendanceRecord = new Attendance
                    {
                        StudentID         = attendance.StudentID,
                        StaffID           = attendance.StaffID,
                        AttendanceStateID = attendance.AttendanceStateID,
                        Date    = attendance.Date,
                        Comment = attendance.Comment
                    };

                    _context.AttendanceRecords.Add(newAttendanceRecord);

                    // Save changes
                    await _context.SaveChangesAsync();

                    Logger.Msg <AttendancesController>($"[{User.FindFirstValue("email")}] [ADD] attendance for StudentID '{newAttendanceRecord.StudentID}' recorded", Serilog.Events.LogEventLevel.Information);
                    AttendanceDTO response = new AttendanceDTO(newAttendanceRecord);
                    return(Ok(response));
                }
                catch (Exception ex)
                {
                    // Local log entry. Database reconciliation issues are more serious so reported as Error
                    Logger.Msg <AttendancesController>($"[MODIFY] Database sync error {ex.Message}", Serilog.Events.LogEventLevel.Error);

                    // Return response to client
                    return(StatusCode(500, new { errors = "Database update failed. Contact the administrator to resolve this issue." }));
                }
            }
        } // End of AddAttendance
Beispiel #27
0
        //Update Attendance (async)
        public async Task <AttendanceDTO> UpdateAttendanceAsync(AttendanceDTO modelDTO)
        {
            try
            {
                using (var unitOfWork = unitOfWorkFactory.Create())
                {
                    if (!string.IsNullOrEmpty(modelDTO._ImageFileUrl))
                    {
                        var tempImageTypeModel = unitOfWork.ImageFileTypeRepository.GetSingleOrDefaultImageFileType(x => x.Type.Contains("AttendanceImage"));

                        ImageFileTypeDTO imageFileTypeDTO = _Mapper_ToDTO.Map <ImageFileTypeModel, ImageFileTypeDTO>(tempImageTypeModel);

                        modelDTO.ImageFileUrl = new ImageFileUrlDTO()
                        {
                            Url             = modelDTO._ImageFileUrl,
                            CreateDate      = DateTime.Now,
                            ImageFileTypeId = imageFileTypeDTO.ImageFileTypeId
                        };
                    }
                    else
                    {
                        modelDTO.ImageFileUrl = null;
                    }

                    AttendanceModel model = _Mapper_ToModel.Map <AttendanceDTO, AttendanceModel>(modelDTO);

                    bool result = unitOfWork.AttendanceRepository.Update(model);

                    AttendanceDTO modelRTN = null;
                    if (result)
                    {
                        await unitOfWork.SaveChangesAsync();

                        modelRTN = _Mapper_ToDTO.Map <AttendanceModel, AttendanceDTO>(model);
                    }

                    return(modelRTN);
                }
            }
            catch (Exception ex)
            {
                LogException(ex);
                throw ex;
            }
        }
        public IHttpActionResult Attend(AttendanceDTO dTO)
        {
            var userId = User.Identity.GetUserId();

            if (_context.Attandances.Any(a => a.GigId == dTO.GigId && a.AttendeeId == userId))
            {
                return(BadRequest("The attendance already exists"));
            }
            var attendance = new Attendance
            {
                AttendeeId = userId,
                GigId      = dTO.GigId
            };

            _context.Attandances.Add(attendance);
            _context.SaveChanges();
            return(Ok());
        }
Beispiel #29
0
        public async Task <IHttpActionResult> AddAttendance([FromBody] AttendanceDTO AttendanceModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            var newAttendanceId = await AttendanceService.AddAttendanceAsync(AttendanceModel);

            if (newAttendanceId != 0)
            {
                return(Ok(newAttendanceId));
            }
            else
            {
                return(NotFound());
            }
        }
        public IHttpActionResult Attend(AttendanceDTO gidDto)
        {
            var exist = _unitOfWork.Attendance.FindAttendance(gidDto.gidID, User.Identity.GetUserId());

            if (exist != null)
            {
                return(BadRequest("This attandance is existed"));
            }
            var attendance = new Attendance
            {
                GigID      = gidDto.gidID,
                AttendeeID = User.Identity.GetUserId()
            };

            _unitOfWork.Attendance.Add(attendance);
            _unitOfWork.Finish();
            return(Ok());
        }