private Task OnValidateIdentityHandle(OAuthValidateIdentityContext context) { var Db = new WIKIDbContext(); var cache = MemoryCache.Default; CacheItemPolicy policy = new CacheItemPolicy(); policy.AbsoluteExpiration = DateTimeOffset.FromUnixTimeSeconds(60 * 30); var userId = Guid.Parse(context.Ticket.Identity.FindFirst("sub").Value); var obj = cache.Get(userId.ToString()); if (obj == null) { var entity = Db.Account.Where(m => m.WUCC_UserId == userId).FirstOrDefault(); if (entity == null) { entity = new Account { WUCC_UserId = userId, Department = context.Ticket.Identity.Claims.FirstOrDefault(m => m.Type == "SalesDepartment").Value, UserName = context.Ticket.Identity.Name, FullName = context.Ticket.Identity.Claims.FirstOrDefault(m => m.Type == "FullName").Value, }; Db.Account.Add(entity); } else { entity.Department = context.Ticket.Identity.Claims.FirstOrDefault(m => m.Type == "SalesDepartment").Value; entity.UserName = context.Ticket.Identity.Name; entity.FullName = context.Ticket.Identity.Claims.FirstOrDefault(m => m.Type == "FullName").Value; } Db.SaveChanges(); cache.Add(userId.ToString(), entity, policy); } return(Task.FromResult(0)); }
public IHttpActionResult Create(ODataActionParameters parameters) { if (parameters["dto"] == null) { throw new Exception("输入参数错误"); } var dto = parameters["dto"] as ViewLogDailyCreateInputDto; this.Validate(dto); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var entity = dto.MapToEntity(); Db.ViewLogDaily.Add(entity); Db.SaveChanges(); return(Created(entity)); }
public IHttpActionResult Create(ODataActionParameters parameters) { if (parameters["dto"] == null) { throw new Exception("输入参数错误"); } var dto = parameters["dto"] as DocumentCreateInputDto; this.Validate(dto); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var documentEntity = dto.MapToEntity(); documentEntity.CreatedBy = User.Identity.Name; documentEntity.DocumentAttachmentList = new List <DocumentAttachment>(); foreach (var item in dto.DocumentAttachments) { var attachmentEntity = item.MapToEntity(); attachmentEntity.CreatedBy = User.Identity.Name; documentEntity.DocumentAttachmentList.Add(attachmentEntity); } using (var transaction = Db.Database.BeginTransaction()) { try { var contentEntity = documentEntity.MapToContent(); Db.Content.Add(contentEntity); Db.SaveChanges(); documentEntity.Id = contentEntity.Id; Db.Document.Add(documentEntity); foreach (var t in dto.Tags) { var tag = new Tag { ContentId = documentEntity.Id, ContentType = ContentTypeEnum.Document.ToString(), Value = t }; Db.Tag.Add(tag); } Db.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } return(Created(documentEntity)); }
public IHttpActionResult Create(ODataActionParameters parameters) { if (parameters["dto"] == null) { throw new Exception("输入参数错误"); } var dto = parameters["dto"] as QuestionCreateInputDto; this.Validate(dto); if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var questionEntity = dto.MapToEntity(); questionEntity.CreatedBy = User.Identity.Name; foreach (var item in dto.Answers) { questionEntity.Answers.Add(new Answer { Text = item, CreatedBy = User.Identity.Name }); } using (var transaction = Db.Database.BeginTransaction()) { try { var contentEntity = questionEntity.MapToContent(); Db.Content.Add(contentEntity); Db.SaveChanges(); questionEntity.Id = contentEntity.Id; Db.Question.Add(questionEntity); foreach (var t in dto.Tags) { var tag = new Tag { ContentId = questionEntity.Id, ContentType = ContentTypeEnum.Question.ToString(), Value = t }; Db.Tag.Add(tag); } Db.SaveChanges(); transaction.Commit(); } catch (Exception ex) { transaction.Rollback(); throw ex; } } return(Created(questionEntity)); }