コード例 #1
0
        public async Task <CheckInResult> RegisterCheckInAsync(string email, string info, DateTime utcDateTime,
                                                               bool location, bool endDay)
        {
            var user = await _userManager.FindByEmailAsync(email);

            if (user == null)
            {
                return(new CheckInResult
                {
                    Success = false,
                    Errors = new string[] { "User email does not exits" }
                });
            }

            var checkIns = await _checkinManager.FindByUserEmailAndDateAsync(email, utcDateTime);

            var alreadyEnded = checkIns.Any(x => x.EndDay);

            if (alreadyEnded)
            {
                return(new CheckInResult
                {
                    Errors = new[] { "Already finished current working day" }
                });
            }

            if ((checkIns.Count() + 1) % 2 != 0 && endDay)
            {
                return(new CheckInResult
                {
                    Errors = new[] { "Cannot end your day, previous check ins are missing" }
                });
            }

            var insert = new CheckInRecord
            {
                User = user, Info = info, UtcDateTime = utcDateTime, Location = location, EndDay = endDay
            };

            bool added = await _checkinManager.AddRecord(insert);

            if (added)
            {
                return(new CheckInResult
                {
                    Success = true,
                    Id = insert.Id,
                    Info = info,
                    UtcDateTime = utcDateTime,
                    EmailOwner = email,
                    Location = location,
                    EndDay = endDay
                });
            }

            return(new CheckInResult
            {
                Success = false
            });
        }
コード例 #2
0
ファイル: CheckInDAL.cs プロジェクト: Seryusjj/OnTimeApp
        public async Task <bool> AddRecord(CheckInRecord record)
        {
            _context.Add(record);
            var additions = await _context.SaveChangesAsync();

            return(additions > 0);
        }
コード例 #3
0
        public bool IsIssueValid(CheckInRecord checkInRecord, string barcode)
        {
            var dbrecord = GetCheckInRecord(barcode);

            if (dbrecord.CheckInDate == null || dbrecord.CheckInDate == default(DateTime))
            {
                return(false);
            }

            return(true);
        }
コード例 #4
0
        public JsonResult AddCheckInRecords(CheckInRecord addCheckIn, List <string> Barcodes)
        {
            var           success = true;
            StringBuilder message = new StringBuilder(string.Empty);

            if (addCheckIn.IssueDate == default(DateTime))
            {
                foreach (var item in Barcodes)
                {
                    if (!bookRepository.IsBarcodeValid(item))
                    {
                        message.AppendLine($"Book with barcode:{item} doesn't exist.");
                        message.AppendLine();
                    }
                    else if (!checkInRepository.IsCheckInValid(addCheckIn, item))
                    {
                        message.AppendLine($"Book with barcode:{item} is already checked in or never issued.");
                        message.AppendLine();
                    }
                    else
                    {
                        var checkIn = checkInRepository.GetCheckInRecord(item);
                        checkIn.CheckInDate = addCheckIn.CheckInDate;
                        checkInRepository.Update <CheckInRecord>("CheckInRecords", checkIn);
                    }
                }
            }
            else
            {
                addCheckIn.Fairy_Id = addCheckIn.Fairy.Id;

                foreach (var item in Barcodes)
                {
                    if (!bookRepository.IsBarcodeValid(item))
                    {
                        message.AppendLine($"Book with barcode:{item} doesn't exist.");
                        message.AppendLine();
                    }
                    else if (!checkInRepository.IsIssueValid(addCheckIn, item))
                    {
                        message.AppendLine($"Book with barcode:{item} is not checked in. So, unable to issue.");
                        message.AppendLine();
                    }
                    else
                    {
                        addCheckIn.Book_Id = bookRepository.GetBookId(item);
                        checkInRepository.Create <CheckInRecord>("CheckInRecords", addCheckIn);
                    }
                }
            }

            return(Json(new { Success = success, Message = message.ToString() }));
        }
コード例 #5
0
        // POST: odata/CheckInRecords
        public IHttpActionResult Post(CheckInRecord checkInRecord)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.CheckInRecords.Add(checkInRecord);
            db.SaveChanges();

            return(Created(checkInRecord));
        }
コード例 #6
0
        public bool IsCheckInValid(CheckInRecord checkInRecord, string barcode)
        {
            var dbrecord = GetCheckInRecord(barcode);

            if (dbrecord == null)
            {
                return(false);
            }
            if (dbrecord.CheckInDate != null && dbrecord.CheckInDate != default(DateTime))
            {
                return(false);
            }
            return(true);
        }
コード例 #7
0
        // DELETE: odata/CheckInRecords(5)
        public IHttpActionResult Delete([FromODataUri] int key)
        {
            CheckInRecord checkInRecord = db.CheckInRecords.Find(key);

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

            db.CheckInRecords.Remove(checkInRecord);
            db.SaveChanges();

            return(StatusCode(HttpStatusCode.NoContent));
        }
コード例 #8
0
        //[EnableCors("any")] //设置跨域处理的 代理
        public IEnumerable <CheckInRecord> Get()
        {
            DataSet ds = MysqlHelper.Query(_ConnectionStr, "select * from checkinrecords ;");

            CheckInRecord[] ts  = new CheckInRecord[ds.Tables[0].Rows.Count];
            int             idx = 0;

            foreach (DataRow dr in ds.Tables[0].Rows)
            {
                ts[idx]                = new CheckInRecord();
                ts[idx].ID             = idx;// (int)dr["ID"];
                ts[idx].StudentSession = (string)dr["StudentSession"];
                ts[idx].CheckInSession = (string)dr["CheckInSession"];
                ts[idx].CheckTime      = ((DateTime)dr["CheckTime"]).ToString("G");
                //ts[idx].Description = (string)dr["Description"];
                idx++;
            }
            return(ts);
        }
コード例 #9
0
        public IHttpActionResult Patch([FromODataUri] int key, Delta <CheckInRecord> patch)
        {
            Validate(patch.GetEntity());

            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            CheckInRecord checkInRecord = db.CheckInRecords.Find(key);

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

            patch.Patch(checkInRecord);

            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CheckInRecordExists(key))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(Updated(checkInRecord));
        }
コード例 #10
0
 public void CheckInBooks(CheckInRecord addCheckIn, List <string> Barcodes)
 {
     foreach (var item in Barcodes)
     {
     }
 }