public static void CheckDatum(this DatumModel input)
 {
     if (string.IsNullOrWhiteSpace(input.Label))
     {
         throw new ArgumentException("The label cannot be empty.");
     }
 }
        public async Task <DatumModel> UpdateAsync(string stuffId, DatumModel input)
        {
            input.CheckDatum();
            if (stuffId != input.Id)
            {
                throw new ArgumentException("Corrupted data.");
            }

            TUser dbUserAuth = await _userAuth.GetCurrentUserAsync("updated datum");

            TStuff dbStuff = await _context.TStuff.FirstOrDefaultAsync(x => x.StfId.Equals(stuffId));

            if (dbStuff == null || dbStuff.StfUserId != dbUserAuth.UsrId)
            {
                throw new ArgumentException("Corrupted data.");
            }

            // Update stuff
            dbStuff = input.ToUpdate(dbStuff);
            await _context.SaveChangesAsync();

            // Attach user to the stuff for the response
            dbStuff.StfUser = dbUserAuth;
            var result = dbStuff.ToDatumModel();

            return(result);
        }
        public async Task <DatumModel> CreateAsync(DatumModel input)
        {
            input.CheckDatum();
            TStuff dbStuff    = input.ToCreate();
            TUser  dbUserAuth = await _userAuth.GetCurrentUserAsync("created datum");

            TUser dbUser = await _context.TUser.FirstOrDefaultAsync(x => x.UsrId.Equals(dbUserAuth.UsrId));

            if (dbUser == null)
            { // Create and attach new user
                dbUserAuth.UsrCreatedAt = DateTime.UtcNow.ToStrDate();
                dbStuff.StfUser         = dbUserAuth;
            }

            // Attach foreign key
            dbStuff.StfUserId = dbUserAuth.UsrId;
            // Create stuff
            await _context.TStuff.AddAsync(dbStuff);

            await _context.SaveChangesAsync();

            // Attach user to the stuff for the response
            dbStuff.StfUser = dbUserAuth;
            var result = dbStuff.ToDatumModel();

            return(result);
        }
        public static TStuff ToUpdate(this DatumModel input, TStuff result)
        {
            result.StfId          = input.Id;
            result.StfLabel       = input.Label;
            result.StfDescription = input.Description;
            result.StfOtherInfo   = input.OtherInfo;
            result.StfUpdatedAt   = DateTime.UtcNow.ToStrDate();

            return(result);
        }
        public static TStuff ToCreate(this DatumModel input)
        {
            var result = input == null ? null : new TStuff
            {
                StfId          = Guid.NewGuid().ToString(),
                StfLabel       = input.Label,
                StfDescription = input.Description,
                StfOtherInfo   = input.OtherInfo,
                StfCreatedAt   = DateTime.UtcNow.ToStrDate()
            };

            return(result);
        }
Пример #6
0
        public List <DatumModel> DataTableToList(DataTable dt)
        {
            List <DatumModel> list = new List <DatumModel>();
            int count = dt.Rows.Count;

            if (count > 0)
            {
                for (int i = 0; i < count; i++)
                {
                    DatumModel item = new DatumModel();
                    if ((dt.Rows[i]["i_id"] != null) && (dt.Rows[i]["i_id"].ToString() != ""))
                    {
                        item.i_id = new Guid(dt.Rows[i]["i_id"].ToString());
                    }
                    if ((dt.Rows[i]["PrjCode"] != null) && (dt.Rows[i]["PrjCode"].ToString() != ""))
                    {
                        item.PrjCode = new Guid(dt.Rows[i]["PrjCode"].ToString());
                    }
                    if ((dt.Rows[i]["AffairClass"] != null) && (dt.Rows[i]["AffairClass"].ToString() != ""))
                    {
                        item.AffairClass = dt.Rows[i]["AffairClass"].ToString();
                    }
                    if ((dt.Rows[i]["AffairTitle"] != null) && (dt.Rows[i]["AffairTitle"].ToString() != ""))
                    {
                        item.AffairTitle = dt.Rows[i]["AffairTitle"].ToString();
                    }
                    if ((dt.Rows[i]["AddDate"] != null) && (dt.Rows[i]["AddDate"].ToString() != ""))
                    {
                        item.AddDate = DateTime.Parse(dt.Rows[i]["AddDate"].ToString());
                    }
                    if ((dt.Rows[i]["Remark"] != null) && (dt.Rows[i]["Remark"].ToString() != ""))
                    {
                        item.Remark = dt.Rows[i]["Remark"].ToString();
                    }
                    if ((dt.Rows[i]["Context"] != null) && (dt.Rows[i]["Context"].ToString() != ""))
                    {
                        item.Context = dt.Rows[i]["Context"].ToString();
                    }
                    if ((dt.Rows[i]["DatumClass"] != null) && (dt.Rows[i]["DatumClass"].ToString() != ""))
                    {
                        item.DatumClass = int.Parse(dt.Rows[i]["DatumClass"].ToString());
                    }
                    if ((dt.Rows[i]["CA"] != null) && (dt.Rows[i]["CA"].ToString() != ""))
                    {
                        item.CA = new int?(int.Parse(dt.Rows[i]["CA"].ToString()));
                    }
                    list.Add(item);
                }
            }
            return(list);
        }
Пример #7
0
 public void Add(DatumModel model)
 {
     this.dal.Add(model);
 }
Пример #8
0
        public async Task <IActionResult> Update(string id, [FromBody] DatumModel input)
        {
            DatumModel result = await _stuffRepo.UpdateAsync(id, input);

            return(Ok(result));
        }
Пример #9
0
        public async Task <IActionResult> Read(string id)
        {
            DatumModel result = await _stuffRepo.ReadAsync(id);

            return(Ok(result));
        }
Пример #10
0
        public async Task <IActionResult> Create([FromBody] DatumModel input)
        {
            DatumModel result = await _stuffRepo.CreateAsync(input);

            return(CreatedAtAction(nameof(Read), new { id = result.Id }, result));
        }