public Result PostRawMateria([FromBody] RawMateria rawMateria) { var createUserId = Request.GetIdentityInformation(); var time = DateTime.Now; var cnt = ServerConfig.FlowCardDb.Query <int>("SELECT COUNT(1) FROM `raw_materia` WHERE RawMateriaName = @RawMateriaName AND MarkedDelete = 0;", new { rawMateria.RawMateriaName }).FirstOrDefault(); if (cnt > 0) { return(Result.GenError <Result>(Error.RawMateriaIsExist)); } rawMateria.CreateUserId = createUserId; rawMateria.MarkedDateTime = time; var index = ServerConfig.FlowCardDb.Query <int>( "INSERT INTO raw_materia (`CreateUserId`, `MarkedDateTime`, `MarkedDelete`, `ModifyId`, `RawMateriaName`) " + "VALUES (@CreateUserId, @MarkedDateTime, @MarkedDelete, @ModifyId, @RawMateriaName);SELECT LAST_INSERT_ID();", rawMateria).FirstOrDefault(); if (rawMateria.RawMateriaSpecifications.Any()) { var rawMateriaRawMateriaSpecifications = rawMateria.RawMateriaSpecifications; foreach (var rawMateriaSpecification in rawMateriaRawMateriaSpecifications) { rawMateriaSpecification.RawMateriaId = index; rawMateriaSpecification.CreateUserId = createUserId; rawMateriaSpecification.MarkedDateTime = time; } ServerConfig.FlowCardDb.Execute( "INSERT INTO raw_materia_specification (`CreateUserId`, `MarkedDateTime`, `MarkedDelete`, `ModifyId`, `RawMateriaId`, `SpecificationName`, `SpecificationValue`) " + "VALUES (@CreateUserId, @MarkedDateTime, @MarkedDelete, @ModifyId, @RawMateriaId, @SpecificationName, @SpecificationValue);", rawMateriaRawMateriaSpecifications); } return(Result.GenError <Result>(Error.Success)); }
public Result PutRawMateria([FromRoute] string rawMateriaName, [FromBody] RawMateria rawMateria) { var data = ServerConfig.FlowCardDb.Query <RawMateria>("SELECT `Id` FROM `raw_materia` WHERE RawMateriaName = @rawMateriaName AND MarkedDelete = 0;", new { rawMateriaName }).FirstOrDefault(); if (data == null) { return(Result.GenError <Result>(Error.RawMateriaNotExist)); } var cnt = ServerConfig.FlowCardDb.Query <int>("SELECT COUNT(1) FROM `raw_materia` WHERE RawMateriaName = @RawMateriaName AND MarkedDelete = 0;", new { rawMateria.RawMateriaName }).FirstOrDefault(); if (cnt > 0) { if (!rawMateria.RawMateriaName.IsNullOrEmpty() && data.RawMateriaName != rawMateria.RawMateriaName) { return(Result.GenError <Result>(Error.RawMateriaIsExist)); } } rawMateria.Id = data.Id; rawMateria.CreateUserId = Request.GetIdentityInformation(); rawMateria.MarkedDateTime = DateTime.Now; ServerConfig.FlowCardDb.Execute( "UPDATE raw_materia SET `CreateUserId` = @CreateUserId, `MarkedDateTime` = @MarkedDateTime, `MarkedDelete` = @MarkedDelete, " + "`ModifyId` = @ModifyId, `RawMateriaName` = @RawMateriaName WHERE `Id` = @Id;", rawMateria); return(Result.GenError <Result>(Error.Success)); }
public Result PutRawMateria([FromRoute] int id, [FromBody] RawMateria rawMateria) { var data = ServerConfig.FlowCardDb.Query <RawMateria>("SELECT * FROM `raw_materia` WHERE Id = @id AND MarkedDelete = 0;", new { id }).FirstOrDefault(); if (data == null) { return(Result.GenError <Result>(Error.RawMateriaNotExist)); } var cnt = ServerConfig.FlowCardDb.Query <int>("SELECT COUNT(1) FROM `raw_materia` WHERE RawMateriaName = @RawMateriaName AND MarkedDelete = 0;", new { rawMateria.RawMateriaName }).FirstOrDefault(); if (cnt > 0) { if (!rawMateria.RawMateriaName.IsNullOrEmpty() && data.RawMateriaName != rawMateria.RawMateriaName) { return(Result.GenError <Result>(Error.RawMateriaIsExist)); } } var createUserId = Request.GetIdentityInformation(); var time = DateTime.Now; rawMateria.Id = id; rawMateria.CreateUserId = createUserId; rawMateria.MarkedDateTime = time; ServerConfig.FlowCardDb.Execute( "UPDATE raw_materia SET `CreateUserId` = @CreateUserId, `MarkedDateTime` = @MarkedDateTime, `MarkedDelete` = @MarkedDelete, " + "`ModifyId` = @ModifyId, `RawMateriaName` = @RawMateriaName WHERE `Id` = @Id;", rawMateria); if (rawMateria.RawMateriaSpecifications.Any()) { var rawMateriaSpecifications = rawMateria.RawMateriaSpecifications; foreach (var rawMateriaSpecification in rawMateriaSpecifications) { rawMateriaSpecification.RawMateriaId = id; rawMateriaSpecification.CreateUserId = createUserId; rawMateriaSpecification.MarkedDateTime = time; } var existRawMateriaSpecifications = ServerConfig.FlowCardDb.Query <RawMateriaSpecification>("SELECT * FROM `raw_materia_specification` " + "WHERE MarkedDelete = 0 AND RawMateriaId = @RawMateriaId;", new { RawMateriaId = id }); ServerConfig.FlowCardDb.Execute( "INSERT INTO raw_materia_specification (`CreateUserId`, `MarkedDateTime`, `MarkedDelete`, `ModifyId`, `RawMateriaId`, `SpecificationName`, `SpecificationValue`) " + "VALUES (@CreateUserId, @MarkedDateTime, @MarkedDelete, @ModifyId, @RawMateriaId, @SpecificationName, @SpecificationValue);", rawMateriaSpecifications.Where(x => x.Id == 0)); var updateRawMateriaSpecifications = rawMateriaSpecifications.Where(x => x.Id != 0 && existRawMateriaSpecifications.Any(y => y.Id == x.Id && (y.SpecificationName != x.SpecificationName || y.SpecificationValue != x.SpecificationValue))).ToList(); updateRawMateriaSpecifications.AddRange(existRawMateriaSpecifications.Where(x => rawMateriaSpecifications.All(y => x.Id != y.Id)).Select(x => { x.MarkedDateTime = DateTime.Now; x.MarkedDelete = true; return(x); })); ServerConfig.FlowCardDb.Execute( "UPDATE raw_materia_specification SET `CreateUserId` = @CreateUserId, `MarkedDateTime` = @MarkedDateTime, `MarkedDelete` = @MarkedDelete, `ModifyId` = @ModifyId, " + "`RawMateriaId` = @RawMateriaId, `SpecificationName` = @SpecificationName, `SpecificationValue` = @SpecificationValue WHERE `Id` = @Id;", updateRawMateriaSpecifications); } return(Result.GenError <Result>(Error.Success)); }